All notable changes to this project are documented below.
The format is based on keep a changelog and this project uses semantic versioning.
- Fixed initialization of shared pointer in
authenticateSteamAsync
.
- Fixed an issue where
NRtClient
would throw an exception when connecting over poor Wifi connections.
NRtClient
will now guard against multiple connection attempts without disconnecting from the socket.NRtClient
now exposes anisConnecting()
method for checking if an active connection attempt is being made.
- Fixed a race condition that could happen during socket connection which would cause
std::future_error
to be thrown.
- Fixed a memory issue with retrieving HTTP response codes.
- Added an additional
std::future
-based API toNClient
andNRtClient
. All methods in these clients have future-based counterpart suffixed withAsync
. - Added static build support for Nakama SDK via package managers like vcpkg. We have plans to add static distributions to our release pages in the future.
- Fixed multiple errant compiler directives in
NClient
.
- Simplified test suite and improved build system for proprietary platforms.
- Upgraded Curl to 8.0.1.
- Changed adapter on Windows from libhttpclient to libcurl.
- Removed "d" suffix from Windows debug library.
- Added support for listing matches with a query.
- Fixed encoding issue with some cursors sent to the server.
- Fixed an exception that could be thrown when the client sent match data over a bad network.
- Upgraded libcurl to 7.88.1 which fixed a rare Websocket SSL handshake issue on Unix systems.
- Fixed base64 dependency in Android SSL for broader Android API level support.
- Improved build automation around test suite.
- Restore armeabi-v7a Android support.
- Fixed an issue where SSL certificates for the libcurl transport were not loaded properly if the JavaVM was shared with other libraries.
- Windows x86 support
- Support for vcpkg consumption. See README.md for examples.
- The test suite is now runnable on iOS and Android devices.
- Added a libcurl network transport and specified it as the default for Android.
- Android builds can now be made on ARM macs.
- Nakama can now be included via users by CMake
find_package(nakama-sdk)
calls.
- Removed ability to create default client and realtime clients if no default transport is specified for the platform (
createDefaultClient
,createDefaultRtClient
). This will only affect users who use vcpkg or CMake to explicitly toggle off our default transports. - Simplfied the Android build toolchain. The entry point is now standardized with our other platforms using the
cmake --preset ...
pattern.
- We now publish header and debug binaries for Windows
- Platforms using our wslay adapter (Android, Linux, Mac, iOS) now trigger
onDisconnect
on error. - Fixed an issue where the web socket would hang on slower network connections.
- Fixed authenticateRefresh in the GrpcClient.
- Added CFBundleVersion to MacOSX frameworks which is required for the app store upload process.
- This is a rewrite of the C++ repository structure and build system. The user-facing API remains unchanged.
- Fixed Party & Matchmaking callbacks.
- Fixed removeMatchmakerParty API.
- Added realtime parties support.
- Fixed assignment of cursor in listing of storage objects.
- fix join group chat by correcting NChannelType enum values
- Support server 2.13.0
- Added authentication with Apple ID:
authenticateApple
,linkApple
andunlinkApple
- Added
demoteGroupUsers
- Added
NClientInterface::rpc
withhttp key
- Added
disableTime
toNAccount
- Added
updateTime
toNFriend
- Improve future-compatibility with server changes
- Fix #36 listFriends failing on 2.3.0 against 2.13.0 server
- support Windows 10 SDK
- support build for android on linux
- fix crash when response is received after NClient was deleted
- fix build with CMake 3.15+ on Windows 10
- speedup build for Linux
- install_deps.sh for linux to install dependencies
- fix uint16_t is too small for our match data (#25)
- fix getUsername and getUserId in session wrapper
- fix build tests if BUILD_C_API is off
- C API.
- Support iOS SDK 13.
- RPC call fails when body is empty.
- RPC payload differences between Rest and RT clients.
- optional_HAVE_INITIALIZER_LIST is undefined.
- Release for Ubuntu 18.04 x64 only (previously was Ubuntu 14.04.5 x86, x64).
- Support server 2.7
- Following client API has been added/changed to support server 2.7:
- NSessionInterface
- getVariables
- getVariable
- NClientInterface
- authenticateDevice
- authenticateEmail
- authenticateFacebook
- authenticateGoogle
- authenticateGameCenter
- authenticateCustom
- authenticateSteam
- listFriends
- createGroup
- listGroupUsers
- listUserGroups
- NRtClientInterface
- joinMatch
- NSessionInterface
- Updated optional lib to v.3.2.0
- REST client (HTTP/1.1).
- Add tournament start active time to the API response.
- Add "Activity timeout" to Websocket.
- Now we use one C++ REST library for all platforms instead of Websocketpp and IXWebsocket.
- gRPC client is off.
- Fixed loading dynamic library on Mac.
- support Visual Studio 2019.
- support build as shared lib (DLL)
- enable SSL for IXWebsocket.
- SSL support.
- Added IXWebsocket 1.3.1 for Mac, iOS and Android.
- Client and Realtime Client different host/ssl config.
- Added enums for storage permissions.
- Improved NConsoleLogSink for Windows.
- Updated grpc to 1.19.1.
- Fixed listUserGroups for own user.
- Fixed: success callback is not called for methods with empty response.
- Propagate transport error to realtime client listener.
- Validation of user presences in sendMatchData.
- Xcode warning on required version.
- Initial public release.
- Current limitation - No SSL support