A Rust library for remote multiplexed objects, channels, and RPC over various transports.
Remoc is a Rust library that enables seamless communication between distributed components through remote objects, channels, and remote procedure calls (RPC). It provides a type-safe, multiplexed transport layer that works over TCP, TLS, WebSockets, and other protocols, making it ideal for building distributed systems, microservices, and networked applications.
Rust developers building distributed systems, microservices, or networked applications that require type-safe, multiplexed communication between components.
Developers choose Remoc for its emphasis on type safety, performance, and flexibility, allowing them to build robust distributed systems without sacrificing Rust's guarantees, with built-in support for secure connections and multiplexing to reduce overhead.
Remoc 🦑 — Remote multiplexed objects, channels and RPC for Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Remoc ensures compile-time safety for remote objects and RPC calls, reducing runtime errors in distributed systems as emphasized in its philosophy.
Supports TCP, TLS, WebSockets, and custom transports via a unified interface, allowing adaptation to diverse network environments without lock-in.
Multiple logical streams over a single physical connection reduce overhead, improving performance for concurrent communications in microservices.
With TLS and optional authentication, Remoc provides secure connections out of the box, essential for distributed applications handling sensitive data.
Automatic serialization and deserialization for remote objects can add latency, making it less ideal for high-frequency, real-time applications where performance is paramount.
Being Rust-focused, Remoc requires additional bridging layers for integration with systems in other languages, unlike frameworks like gRPC that offer native multi-language support.
Configuring remote objects, channels, and RPC involves more initial code compared to simpler socket-based libraries, which can slow down prototyping.