eznet
a simple net lib
ENet/laminar style, Quinn (QUIC) based, simple to use and async net lib with configurable reliability and ordering.
Features:
-
Packets are encrypted (but not really securely TODO: 1)
-
Reliable ordered, reliable sequenced, reliable unordered, unreliable sequenced and unreliable unordered packets
-
Easy to use
-
Async/await
Example:
// examples/simple-server.rs
let bind_addr = new;
let mut listener = bind;
while let Some = listener.next.await
// examples/simple-client.rs
let server_addr = new;
let mut socket = connect.await.unwrap;
println!;
TODO:
-
Encryption doesn't protect from MITM attacks at the moment. Only self signed server side certificates are used and clients accept everything. Add certificates, private keys, server names and DNS. (1)
-
Open socket magic byte test to filter out random scanners and 'accidental' connections. (2)
-
Disconnect message when closing. (3)
-
Configurable buffer capacity. (4)
-
if packets are sent slightly faster than once per millisecond, none of them get actually sent, all of them are buffered. (5)
-
actually drop 'old' sequenced packets (6)
License
Licensed under either of MIT license or Apache-2.0 license.
I am not a lawyer.