Releases: SteamRE/SteamKit
Releases · SteamRE/SteamKit
3.0.0
- Added a dependency on
System.IO.Hashing
. - Added
SteamKit2.WebUI.Internal
protobufs. - Added
ChatMode
,UIMode
, andIsSteamDeck
toLogOnDetails
. - Added
DepotManifest.Serialize
. - Added
SteamClient.WaitForCallbackAsync
andCallbackManager.RunWaitCallbackAsync
. - Added
cdnAuthToken
parameter toCDN.Client
method for country specific servers that still require it. - Added
SteamAuthTicket
handler. - Added
WebAPI.AsyncInterface.CallAsync
overload that does not require specifyingHttpMethod.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
, useCallbackManager.SubscribeServiceResponse
instead. - If you subscribed to
ServiceMethodNotification
,CallbackManager.SubscribeServiceNotification
instead. - Response messages are now typed under
Body
property, callingGetDeserializedResponse
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.
- See updated
SteamClient
callback queue is now backed byBufferBlock
:FreeLastCallback
andGetAllCallbacks
have been removed.- Calling
GetCallback
andWaitForCallback
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 auint
instead ofbyte[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 aProcess
method.
- Moved
SteamApps.GetCDNAuthToken
toSteamContent.GetCDNAuthToken
due to a Steam change. IServerListProvider
has a new propertyLastServerListRefresh
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 forSymmetricDecrypt
. - Removed
ICallbackMsg
interface, simply useCallbackMsg
instead. - Removed
CMListCallback
as it was removed by Steam.
3.0.0-Beta.5
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
, useCallbackManager.SubscribeServiceResponse
instead. - If you subscribed to
ServiceMethodNotification
,CallbackManager.SubscribeServiceNotification
instead. - Response messages are now typed under
Body
property, callingGetDeserializedResponse
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.
- See updated
IServerListProvider
has a new propertyLastServerListRefresh
which should return an UTC DateTime
last time the server list was refreshed.- Removed
ICallbackMsg
interface, simply useCallbackMsg
instead. - Removed
CMListCallback
as it was removed by Steam.
3.0.0-Beta.4
- Added
SteamAuthTicket
handler. - Added
WebAPI.AsyncInterface.CallAsync
overload that does not require specifyingHttpMethod.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
toSteamContent.GetCDNAuthToken
due to a Steam change.
3.0.0-Beta.3
- 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
- Added
cdnAuthToken
parameter toCDN.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 aProcess
method.
3.0.0-Beta.1
- 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 forSymmetricDecrypt
.
3.0.0-Alpha.3
- Added
UIMode
, andIsSteamDeck
toLogOnDetails
. - Added
SteamClient.WaitForCallbackAsync
andCallbackManager.RunWaitCallbackAsync
.
BREAKING CHANGES
SteamClient
callback queue is now backed byBufferBlock
:FreeLastCallback
andGetAllCallbacks
have been removed.- Calling
GetCallback
andWaitForCallback
now always dequeues a callback, there is no more peek and "freeLast".
DepotManifest.ChunkData.Checksum
is now auint
instead ofbyte[4]
.- Removed
SteamTrading
handler. - Removed
CryptoHelper.GenerateRandomBlock
, useRandomNumberGenerator.GetBytes
instead.
3.0.0-Alpha.2
- Added
ChatMode
toLogOnDetails
- Added
DepotManifest.Serialize
- Updated Steam enums and protobufs.
BREAKING CHANGES
- Removed Artifact and Underlords generated protobufs
- Removed
DepotManifest.SaveToFile
3.0.0-Alpha.1
- 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
- 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
andLongBalanceDelayed
inWalletInfoCallback
. (#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)