Skip to content

gretchenfrage/aqueduct

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aqueduct: Stateful network protocols done right

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.

Specification

See PROTOCOL.txt.

Design principles

See docs/PRINCIPLES.md for more elaboration.

  1. Tractable primitives over automagic black boxes.
  2. Clear, language-agnostic protocol specification.
  3. Exploit the strengths of async Rust.
  4. Exploit the strengths of QUIC and TLS.
  5. Support stateful logic.
  6. Make application logic composable and localized.
  7. Facilitate low-latency designs.
  8. Facilitate secure designs.
  9. Facilitate fault-tolerant designs.

Example

TODO

More resources

See the docs/ subdirectory.

About

Stateful network protocols done right

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published