Skip to content

Releases: SteamRE/SteamKit

3.0.0

07 Nov 11:13
Compare
Choose a tag to compare
  • 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

21 Oct 09:50
Compare
Choose a tag to compare
3.0.0-Beta.5 Pre-release
Pre-release
  • 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

13 Oct 08:22
Compare
Choose a tag to compare
3.0.0-Beta.4 Pre-release
Pre-release
  • 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.

3.0.0-Beta.3

20 Sep 08:14
Compare
Choose a tag to compare
3.0.0-Beta.3 Pre-release
Pre-release
  • Added WebSocket as a default enabled protocol, switched to using GetCMListForConnect API.
  • Fixed CallbackManager to be thread-safe again.
  • Fixed handling GC messages.
  • Hardware utilities for Windows now use CsWin32.

3.0.0-Beta.2

25 Aug 14:34
Compare
Choose a tag to compare
3.0.0-Beta.2 Pre-release
Pre-release
  • Added cdnAuthToken parameter to CDN.Client method for country specific servers that still require it.
  • Insert websocket servers first so that they are preferred.
  • More memory allocation optimizations.

BREAKING CHANGES

  • 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.

3.0.0-Beta.1

06 Aug 11:06
Compare
Choose a tag to compare
3.0.0-Beta.1 Pre-release
Pre-release
  • Add standard constructors to exceptions
  • Make client msg handlers a simple list
  • Simplify callback dispatching
  • Remove compressed buffer allocation in VZipUtil
  • Use ZipArchive in ZipUtil
  • Optimize DecryptFilenames
  • Optimize gzip in HandleMulti
  • Improve encryption allocations
  • Reduce allocations
  • Use ArrayPool for reading websocket messages

BREAKING CHANGES

  • Removed all methods from CryptoHelper except for SymmetricDecrypt.

3.0.0-Alpha.3

05 Aug 07:58
Compare
Choose a tag to compare
3.0.0-Alpha.3 Pre-release
Pre-release
  • Added UIMode, and IsSteamDeck to LogOnDetails.
  • Added SteamClient.WaitForCallbackAsync and CallbackManager.RunWaitCallbackAsync.

BREAKING CHANGES

  • 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".
  • DepotManifest.ChunkData.Checksum is now a uint instead of byte[4].
  • Removed SteamTrading handler.
  • Removed CryptoHelper.GenerateRandomBlock, use RandomNumberGenerator.GetBytes instead.

3.0.0-Alpha.2

18 Jul 16:06
Compare
Choose a tag to compare
3.0.0-Alpha.2 Pre-release
Pre-release
  • Added ChatMode to LogOnDetails
  • Added DepotManifest.Serialize
  • Updated Steam enums and protobufs.

BREAKING CHANGES

  • Removed Artifact and Underlords generated protobufs
  • Removed DepotManifest.SaveToFile

3.0.0-Alpha.1

19 Mar 11:31
3.0.0-Alpha.1
Compare
Choose a tag to compare
3.0.0-Alpha.1 Pre-release
Pre-release
  • Added a dependency on System.IO.Hashing
  • Added SteamKit2.WebUI.Internal protobufs
  • Updated Steam enums and protobufs.

BREAKING CHANGES

  • SteamKit now targets .NET 8
  • Removed obsolete methods and enum values

2.5.0

06 Nov 15:01
Compare
Choose a tag to compare
  • Added support for new Steam authentication system. (#1129, #1268)
    • Make sure to look at the new authentication samples.
  • Added SteamApps.GetLegacyGameKey. (#1071)
  • Added SteamUser.PlayingSessionStateCallback. (#1109)
  • Added ability to serialize depot manifests. (#1113)
  • Added support for unauthenticated service methods. (#1126)
  • Added LogOnDetails.MachineName. (#1183)
  • Added BalanceDelayed and LongBalanceDelayed in WalletInfoCallback. (#1240)
  • Deprecated WebAPIUserNonce, RequestWebAPIUserNonce, SendMachineAuthResponse, UpdateMachineAuthCallback. (#1270)
  • Improved TCP connection reliability. (#1102)
  • Update enums and protobufs. (#1073, #1120, #1126, #1148, #1184, #1203, #1230, #1264, #1269)

Bug Fixes

  • Fixed machine_id on Windows to be consistent with the Steam client. (#1167)
  • Fixed SteamLanguageParser to generate BinaryWriter/Reader that gets disposed. (#1210)
  • Fixed async jobs to use high precision timer for timeouts instead of wall clock. (#1281)
  • Fixed nullability annotations on PersonaStateCallback. (#1067)
  • Fixed sending service method notifications. (#1075)