Install a client
Pick the client for your runtime. They expose the same operations; see Clients overview for the comparison.
| Client | Package | Status |
|---|---|---|
| .NET | Celeriant.Client on NuGet | published, 0.8.0 |
| Rust | celeriant_client_tokio on crates.io | published, 0.2.0 |
| CLI / TUI | celeriant_cli in the server repo | build from source |
.NET
Targets net8.0, net9.0 and net10.0.
dotnet add package Celeriant.Client
using Celeriant.Client;
await using var pool = new CeleriantPool(new CeleriantPoolOptions { Address = "localhost:10000" });
Request and response types live in Celeriant.Client.Requests and Celeriant.Client.Responses, exceptions in Celeriant.Client.Errors. See the .NET client.
Rust
Tokio only. The glommio client in the server repo is not published.
cargo add celeriant_client_tokio celeriant_wal celeriant_msg
celeriant_wal has AggregateKey; celeriant_msg has the request types (ReadRequest, WriteRequest, ReadFilters).
use celeriant_client_tokio::{CeleriantPool, PoolOptions};
let pool = CeleriantPool::new(PoolOptions::new("localhost:10000"));
CeleriantPool::new does not connect; the first request does. Defaults are a 5 s connection timeout and a 30 s request timeout. See the Rust client.
CLI
The CLI and interactive TUI are a separate binary, celeriant_cli. It is not in the container image and not published, so build it from the server repo:
cargo build --release -p celeriant_cli
./target/release/celeriant_cli write --org 1 --type 1 --id 1 \
--client-id 1 --event-type 1 --data '{"hello":"world"}' --allow-create
./target/release/celeriant_cli read --org 1 --type 1 --id 1 --from 1
--allow-create is off by default in the CLI, unlike the libraries. The server address defaults to 127.0.0.1:10000; change it with --server. Run the binary with no command for the TUI. See the CLI and TUI.
Next: your first aggregate.