#sustenet #client #networking #godot #server #multi-player #sustenet-shared

sustenet-shared

Sustenet shared library that contains the common code used by all modules

3 releases

Uses new Rust 2024

new 0.1.2 Apr 21, 2025
0.1.1 Apr 20, 2025
0.1.0 Apr 20, 2025

#1069 in Cryptography

Download history

100 downloads per month
Used in 4 crates

MIT license

23KB
510 lines

sustenet-shared

sustenet-shared is a Rust crate providing common utilities, configuration, networking types, security primitives, and macros for Sustenet's networking solution. It is designed to be used by the master, cluster, client, and other Sustenet components to ensure consistency and code reuse.

Sustenet is a networking solution for game engines. It's made to primarily be used for MMO or large-scale multiplayer games in Godot Engine but can also be used in Unity and Unreal Engine. Support for other engines will continue to grow over time.

Features

  • Configuration: Read and manage settings for master and cluster servers.
  • Networking: Common event types, protocol enums, and cluster structures.
  • Security: AES-256-GCM encryption/decryption, key management, and base64 utilities.
  • Logging: Unified logging macros and log level/type definitions.
  • Macros: Utility macros for error handling and data parsing.
  • Plugin: Define plugins for extensible server logic.

Modules

  • config: Handles and reads the Config.toml file for master and cluster servers.
  • logging: Logging macros and log level/type enums.
  • network: Protocols, events, and cluster info types.
  • packets: Packet enums for master and cluster communication.
  • security: AES encryption, key management, and base64 helpers.
  • utils: Constants and utility functions.
  • macros: Useful macros for error handling and parsing.

Usage

Add sustenet-shared as a dependency in your Cargo.toml (usually crates.io):

[dependencies]
sustenet = { version = "0.1.0", features = ["shared"] }

Or via git:

[dependencies]
sustenet = { git = "https://github.com/Quaint-Studios/Sustenet", version = "0.1.0", features = ["shared"] }

Dependencies

~8–17MB
~243K SLoC