| Crates.io | dynamo-runtime |
| lib.rs | dynamo-runtime |
| version | 0.5.0 |
| created_at | 2025-03-12 14:06:18.971219+00 |
| updated_at | 2025-09-18 19:36:11.6465+00 |
| description | Dynamo Runtime Library |
| homepage | https://github.com/ai-dynamo/dynamo |
| repository | https://github.com/ai-dynamo/dynamo.git |
| max_upload_size | |
| id | 1589789 |
| size | 1,228,676 |
Rust implementation of the Dynamo runtime system, enabling distributed computing capabilities for machine learning workloads.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
cargo build
cargo test
The simplest way to deploy the pre-requisite services is using docker-compose, defined in deploy/docker-compose.yml.
# At the root of the repository:
docker compose -f deploy/docker-compose.yml up -d
This will deploy a NATS.io server and an etcd server used to communicate between and discover components at runtime.
To deploy the pre-requisite services locally instead of using docker-compose
above, you can manually launch each:
nats-server -js --tracefollow instructions in etcd installation to start an etcd-server locally
When developing or running examples, any process or user that shared your core-services (etcd and nats.io) will
be operating within your distributed runtime.
The current examples use a hard-coded namespace. We will address the namespace collisions later.
All examples require the etcd and nats.io pre-requisites to be running and available.
hello_worldWith two terminals open, in one window:
cd examples/hello_world
cargo run --bin server
In the second terminal, execute:
cd examples/hello_world
cargo run --bin client
which should yield some output similar to:
Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.25s
Running `target/debug/client`
Annotated { data: Some("h"), id: None, event: None, comment: None }
Annotated { data: Some("e"), id: None, event: None, comment: None }
Annotated { data: Some("l"), id: None, event: None, comment: None }
Annotated { data: Some("l"), id: None, event: None, comment: None }
Annotated { data: Some("o"), id: None, event: None, comment: None }
Annotated { data: Some(" "), id: None, event: None, comment: None }
Annotated { data: Some("w"), id: None, event: None, comment: None }
Annotated { data: Some("o"), id: None, event: None, comment: None }
Annotated { data: Some("r"), id: None, event: None, comment: None }
Annotated { data: Some("l"), id: None, event: None, comment: None }
Annotated { data: Some("d"), id: None, event: None, comment: None }
See the README.md for details
The Python and Rust hello_world client and server examples are interchangeable,
so you can start the Python server.py and talk to it from the Rust client.