futile / enet-rs

High-level bindings for the ENet networking library (http://enet.bespin.org)
Other
39 stars 21 forks source link
gamedev gamedev-library network-protocol rust

High-Level, Rust-y Bindings for the ENet library

Documentation Crates.io License

This crate aims to provide high-level, rust-y bindings for the ENet library. ENet is a networking library for games that builds on UDP, offering optional reliability, congestion control, connection-orientation and other related features. For more information, check out the ENet Website.

Status

For now, this library is alpha. It builds on the C-bindings for ENet, the enet-sys crate. A lot of the functionality is there, but not everything. Also, since ENet has pretty unclear lifetime semantics, you might actually run into cases where things crash. In those cases, or when something is missing/not yet in the API, open a bug report, and I will look into it as soon as possible.

Usage

To check what the latest released version is, check on https://crates.io/crates/enet, or use cargo add from cargo edit to automatically add a dependency to the most recent version.

Installation is as simple as adding this to your Cargo.toml:

[dependencies]
enet = "0.3.0"

Documentation & Examples

Documentation is available on https://docs.rs/enet or by running cargo doc. An example server and client can be found in the examples directory.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.