Courier — async Rust pipelines
What it does¶
- Build pipelines declaratively from a TOML or JSON config file
- Connect sources, transforms, and sinks through bounded channels
- Fan out automatically to multiple sinks with a built-in broadcast splitter
- Apply backpressure end-to-end through bounded channels
- Retry failed sink writes with exponential backoff and a dead-letter destination
- Embed scripted transforms in Rhai, Lua, or Python
- Emit structured logs, metrics, and W3C-propagated traces over OpenTelemetry (OTLP)
- Shut down gracefully on SIGINT via a shared
CancellationToken
Where to start¶
- Getting Started — install Courier and run your first pipeline.
- Configuration — write
config.tomlfiles and tune error handling. - Architecture — understand the runtime, components, envelope, and backpressure.
- Scripting — write transforms in Rhai, Lua, or Python.
- Examples — end-to-end pipeline recipes.
Project status¶
Courier is at v0.1.0-beta.4. Treat the public API, configuration schema, and on-disk formats (including the dead-letter file format) as provisional. Breaking changes will be called out in the contributing guide and release notes.