Rust abstraction for Valve GameNetworkingSockets
Simple, high-level and (somehow) type-safe wrapper for Valve GameNetworkingSockets.
- Go ahead and read the documentation
- Have a quick look at the reliable chat client/server implementation
The library does not require your application to be running with Steam and this wrapper is intended to wrap the open-source version only.
Some features might be missing, if you are interested to introduce more abstraction, feel free to open a PR/Issue.
Libraries:
gns-sys
is the C++ library from Valve compiled with bindings generated (the library is directly compiled by cargo so you don't need to have it already installed).gns
is the high level, type-safe Rust wrapper.
A few system libraries/tools are required in order to compile the C++ library as part of gns-sys
.
System libraries required:
clang
protobuf
openssl
abseil
(if using a recent version of protobuf)
Tools required to be in $PATH:
git
protobuf-compiler
Building on Windows uses vcpkg in manifest mode to gather and
build dependencies. As such, the only requirement on Windows is to have clang
installed and git
available in $PATH.