Message passing infrastructure for Rust.
https://crates.io/crates/mezzenger
Create | Native | Browser | Description |
---|---|---|---|
mezzenger-tcp | ✅ | n/a | Transport over Tokio TCP implementation. |
mezzenger-udp | ✅ | n/a | Transport over Tokio UDP implementation. |
mezzenger-dtls | wip | n/a | Transport over DTLS implementation. |
mezzenger-webworker | n/a | ✅ | Communication with Web Workers. |
mezzenger-websocket | ✅ | ✅ | Transport over WebSockets. |
mezzenger-channel | ✅ | ✅ | Transport over futures channels. |
The goal of mezzenger
project is to create and maintain a set of crates that make it easy to pass messages
over the network and network-like interfaces.
Other goals:
- maintaining similar interface across transport implementations,
- providing (where applicable) implementations that work both on native and browser WASM targets,
- development of various utilities that make it easy to layer/compose transports of different types and/or properties (see mezzenger-utils).
Non-goals:
- encryption - if required it should be handled by the underlying transport,
- Node.js WASM targets - contributions are welcome, but they won't be developed/maintained by the author of this project,
- best possible performance - implementations are supposed to be decent, without obvious areas for improvement, but if you need to save every bit of bandwidth you'd likely be better served by a custom application-specific protocol.
See rust-webapp-template.
mezzenger-utils - utilities for mezzenger
.
zzrpc - remote procedure call over mezzenger
transports.