Introduction
Hydro is a high-level distributed programming framework for Rust. Hydro can help you quickly write scalable distributed services that are correct by construction. Much like Rust helps with memory safety, Hydro helps with distributed safety. Hydro also makes it easy to get started by running your distributed programs in either testing or deployment modes.
Hydro is a distributed dataflow language, powered by the high-performance single-threaded DFIR runtime. Unlike traditional architectures such as actors or RPCs, Hydro offers choreographic APIs, where expressions and functions can describe computation that takes place across many locations. It also integrates with Hydro Deploy to make it easy to deploy and run distributed Hydro programs either locally or in the cloud.
Hydro uses a two-stage compilation approach. Hydro programs are standard Rust programs, which first run on the developer's laptop to generate a deployment plan. This plan is then compiled to DFIR to generate individual binaries for each machine in the distributed system (enabling zero-overhead abstractions), which are then deployed to the cloud using the generated plan along with specifications of cloud resources.
Hydro has been used to write a variety of high-performance distributed systems, including implementations of classic distributed protocols such as two-phase commit and Paxos. Work is ongoing to develop a distributed systems standard library that will offer these protocols and more as reusable components.
The docs for Hydro are still a work in progress. If you have any questions or run into bugs, please file an issue on the Hydro GitHub repository.