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.
Building
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
Windows
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.