Skip to content

Releases: SteamRE/SteamKit

3.4.0

Choose a tag to compare

@xPaw xPaw released this 14 Jan 22:23
  • Added UserCountryCode to LoggedOnCallback.
  • Added privacy-related enums.
  • Moved Utils.AdlerHash to DepotChunk.AdlerHash which is an unrolled version for better performance.
  • Removed LINQ allocations from KeyValue indexer.
  • Updated EGamingDeviceType enum.
  • Fixed GameID.GetHashCode.
  • Fixed LinkTarget not being decrypted in DepotManifest.
  • Updated Steam enums and protobufs.
  • Updated dependencies.

BREAKING CHANGES

  • SteamKit now targets .NET 10.
  • Removed deprecated Facebook fields from AccountInfoCallback.

3.3.1

Choose a tag to compare

@xPaw xPaw released this 21 Aug 09:59
  • Deprecated IsSteamDeck and added GamingDeviceType to LogOnDetails
  • Updated Steam protobufs.
  • Updated dependencies.

3.3.0

Choose a tag to compare

@xPaw xPaw released this 09 Jun 09:33
  • Configuration.HttpClientFactory will now be used for websocket CM connections.
    • Added HttpClientPurpose enum to allow returning different HTTP clients for different purposes.
  • Post client disconnection callback before cancelling async jobs.
    • Related to the AsyncJob change in the previous release.
  • Added some Deadlock protobufs.
  • Updated Steam protocol version.
  • Updated Steam protobufs.

3.2.0

Choose a tag to compare

@xPaw xPaw released this 09 May 19:18
  • AsyncJob will now instantly fail if not connected to Steam.
    • This is technically a breaking change if you relied on this behaviour.
  • Added support for zstd compressed depot chunks.
    • Added a dependency on ZstdSharp.Port.
  • Added an GetAuthTicketForWebApi
  • Added an argument to pass extra args to WebAPI.CallProtobufAsync<TResponse, TRequest>()
  • Updated Steam protobufs.

3.1.0

Choose a tag to compare

@xPaw xPaw released this 21 Apr 11:05
  • Added SteamApps.PICSGetPrivateBeta.
  • Fixed PersonaStateCallback.StatusFlags
  • Fixed parsing old v4 depot manifests.
  • DepotChunk.Process now validates the magic bytes of the compression.
  • Updated Steam EMsg.
  • Updated dependencies.

3.0.2

Choose a tag to compare

@yaakov-h yaakov-h released this 03 Feb 01:54
  • Fixed handling on tasks to reduce chance of deadlocking sync-over-async consumers. (#1488)
  • Fixed a crash due to library resolution errors when running under .NET 9.0.1 on macOS. (#1501)
  • Updated Steam protobufs.
  • Updated dependencies. (#1493, #1500)

3.0.1

Choose a tag to compare

@xPaw xPaw released this 29 Dec 10:09
  • Added protected PostResponseMsg and PostNotificationMsg to UnifiedService to allow using user-provided services.
  • Added DetectLancacheServerAsync and UseLancacheServer to CDN.Client to allow downloading via LanCache servers.
  • Updated Steam protobufs.

3.0.0

Choose a tag to compare

@xPaw xPaw released this 07 Nov 11:13
  • Added a dependency on System.IO.Hashing.
  • Added SteamKit2.WebUI.Internal protobufs.
  • Added ChatMode, UIMode, and IsSteamDeck to LogOnDetails.
  • Added DepotManifest.Serialize.
  • Added SteamClient.WaitForCallbackAsync and CallbackManager.RunWaitCallbackAsync.
  • Added cdnAuthToken parameter to CDN.Client method for country specific servers that still require it.
  • Added SteamAuthTicket handler.
  • Added WebAPI.AsyncInterface.CallAsync overload that does not require specifying HttpMethod.Get.
  • Added WebSocket as a default enabled protocol, switched to using GetCMListForConnect API.
  • Added support for parsing binary keyvalues that have an alternate end byte.
  • SmartCMServerList will now attempt to refresh itself over the WebAPI if it was last refreshed over 7 days ago.
  • Updated Steam enums and protobufs.
  • Various performance and memory optimizations.
  • Linux machines will now fetch MAC address for the machine id.

BREAKING CHANGES

  • SteamKit now targets .NET 8.
  • SteamUnifiedMessages are now reflection-free with a new API.
    • See updated 013_UnifiedMessages sample for new usage.
    • Requests are now generated functions like so: UnifiedMessages.CreateService<Player>().GetGameBadgeLevels( req );
    • If you subscribed to ServiceMethodResponse, use CallbackManager.SubscribeServiceResponse instead.
    • If you subscribed to ServiceMethodNotification, CallbackManager.SubscribeServiceNotification instead.
    • Response messages are now typed under Body property, calling GetDeserializedResponse was removed.
    • For incoming messages to be processed and decoded, the service must be registered with CreateService first,
      which is done for you by using the new subscribe functions on the callback manager.
  • SteamClient callback queue is now backed by BufferBlock:
    • FreeLastCallback and GetAllCallbacks have been removed.
    • Calling GetCallback and WaitForCallback now always dequeues a callback, there is no more peek and "freeLast".
    • CallbackManager.RunCallbacks now returns bool indicating whether a callback was handled.
  • DepotManifest.ChunkData.Checksum is now a uint instead of byte[4].
  • DepotManifest.SaveToFile now returns void.
  • CDN.Client.DownloadDepotChunkAsync now requires a mandatory destination buffer.
    • Returns the number of written bytes to the destination.
    • You can rent a buffer like ArrayPool<byte>.Shared.Rent((int)chunk.UncompressedLength)
    • DepotChunk is now a static class that only contains a Process method.
  • Moved SteamApps.GetCDNAuthToken to SteamContent.GetCDNAuthToken due to a Steam change.
  • IServerListProvider has a new property LastServerListRefresh which should return an UTC DateTime
    last time the server list was refreshed.
  • Removed obsolete methods and enum values.
  • Removed Artifact and Underlords generated protobufs.
  • Removed SteamTrading handler.
  • Removed RSACrypto class.
  • Removed all methods from CryptoHelper except for SymmetricDecrypt.
  • Removed ICallbackMsg interface, simply use CallbackMsg instead.
  • Removed CMListCallback as it was removed by Steam.

See this for a full diff of the public API

3.0.0-Beta.5

3.0.0-Beta.5 Pre-release
Pre-release

Choose a tag to compare

@xPaw xPaw released this 21 Oct 09:50
  • SmartCMServerList will now attempt to refresh itself over the WebAPI if it was last refreshed over 7 days ago.

BREAKING CHANGES

  • SteamUnifiedMessages are now reflection-free with a new API.
    • See updated 013_UnifiedMessages sample for new usage.
    • Requests are now generated functions like so: UnifiedMessages.CreateService<Player>().GetGameBadgeLevels( req );
    • If you subscribed to ServiceMethodResponse, use CallbackManager.SubscribeServiceResponse instead.
    • If you subscribed to ServiceMethodNotification, CallbackManager.SubscribeServiceNotification instead.
    • Response messages are now typed under Body property, calling GetDeserializedResponse was removed.
    • For incoming messages to be processed and decoded, the service must be registered with CreateService first,
      which is done for you by using the new subscribe functions on the callback manager.
  • IServerListProvider has a new property LastServerListRefresh which should return an UTC DateTime
    last time the server list was refreshed.
  • Removed ICallbackMsg interface, simply use CallbackMsg instead.
  • Removed CMListCallback as it was removed by Steam.

3.0.0-Beta.4

3.0.0-Beta.4 Pre-release
Pre-release

Choose a tag to compare

@xPaw xPaw released this 13 Oct 08:22
  • Added SteamAuthTicket handler.
  • Added WebAPI.AsyncInterface.CallAsync overload that does not require specifying HttpMethod.Get.
  • Added support for parsing binary keyvalues that have an alternate end byte.
  • Linux machines will now fetch MAC address for the machine id.

BREAKING CHANGES

  • Moved SteamApps.GetCDNAuthToken to SteamContent.GetCDNAuthToken due to a Steam change.