Aqueduct is a protocol based on sending networked message channels through other networked message channels, built on QUIC. We believe that async tasks communicating via async channels is a powerful architecture. For example, it can be used to simulate actor oriented programming. Our goal is to take this experience, which Rust already excels at, and elevate it to a distributed context.
Rather than competing with stateless protocols like HTTP and gRPC, where the creation of connections is considered an implementation detail, we aim to create a great experience for stateful network protocols, such as video games, stateful stream processing, actor-oriented programming, reactive programming, and more.
See PROTOCOL.txt.
See docs/PRINCIPLES.md for more elaboration.
- Tractable primitives over automagic black boxes.
- Clear, language-agnostic protocol specification.
- Exploit the strengths of async Rust.
- Exploit the strengths of QUIC and TLS.
- Support stateful logic.
- Make application logic composable and localized.
- Facilitate low-latency designs.
- Facilitate secure designs.
- Facilitate fault-tolerant designs.
TODO
See the docs/ subdirectory.