Skip to content

v1.4.0 Multi-lane support

Compare
Choose a tag to compare
@zpostfacto zpostfacto released this 27 Jan 23:48
· 199 commits to master since this release
v1.4.0
c26ff7c

Version 1.4.0 adds support for multiple lanes, improves compliance with vcpkg best practices, and has numerous smaller bugfixes and improvements.

This brings the library in sync with the Steamworks SDK version 153a.

Multi-lane support

"Lanes" can be used to control head-of-line blocking behaviour. You can control the priority level of each lane and how bandwidth should be shared between different lanes.

Lanes are similar to what QUIC calls "streams", and what other networking APIs call "channels".

See ISteamNetworkingSockets::ConfigureConnectionLanes for details.

Misc bugfixes / improvements

  • Fixed bug setting the connection userdata via the config var k_ESteamNetworkingConfig_ConnectionUserData, which is necessary when setting it at connection creation.
  • Simplified iteration of configuration values and controlling when to list "dev" values.
  • Added configuration values to configure TURN servers for use by WebRTC
  • Improved handling of closing connections in the linger state that did not need to linger.
  • Attempt to clean up connections on library shutdown that were left open or in the linger state.
  • Added several more tests
  • You can now build the cert tool by passing -DBUILD_TOOLS=ON to cmake
  • Improved cmake files, manifests, and build instructions to improve compliance with vcpkg best practices. (Some work still remains in this area. If you are a cmake/vcpkg expert, please help!)
  • Added a test/example project that shows how to pull in this library using vcpkg, without fetching or compiling the code directly.
  • Removed a bunch of declarations for Steam internal things from the headers
  • Added a CI build for windows on github

Other changes

  • The "FakeIP" framework was added to the Steamworks SDK. That feature requires Steam backend support and is not supported in this opensource code, but the declarations are present in the header.
  • GetQuickConnectionStatus renamed to GetConnectionRealTimeStatus and now can return information about the status of each outbound lane. SteamNetworkingQuickConnectionStatus was also renamed to SteamNetConnectionRealTimeStatus_t.