mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2024-12-22 18:33:30 +01:00
A dagger sdk written in rust for rust
kjuulh
66ab2f552c
The thiserror crate has been added to the dependencies in the Cargo.toml file. This crate is used to derive custom error types with automatic source location. |
||
---|---|---|
.github/workflows | ||
ci | ||
crates | ||
.gitignore | ||
ARCHITECTURE.md | ||
Cargo.lock | ||
Cargo.toml | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
Cross.toml | ||
LICENSE.MIT | ||
Makefile.toml | ||
README.md | ||
renovate.json |
dagger-sdk
A dagger sdk written in rust for rust.
Plan for next release
- Introduce thiserror for better errors
- Add compatibility with
dagger run
- Add open telemetry tracing to the sdk
- Remove
id().await?
from passing to other dagger graphs, this should make the design much cleaner - Start MkBook on how to actually use the sdk
- Update to newest upstream release
- Fix bugs
- Run in conjunction with golang and other sdks
- Stabilize the initial
Arc<Query>
model into something more extensible
Examples
See examples
Run them like so
cargo run --example first-pipeline
The examples match the folder name in each directory in examples
Install
Simply install like:
cargo add dagger-sdk
Usage
#[tokio::main]
async fn main() -> eyre::Result<()> {
let client = dagger_sdk::connect().await?;
let version = client
.container()
.from("golang:1.19")
.with_exec(vec!["go", "version"])
.stdout()
.await?;
println!("Hello from Dagger and {}", version.trim());
Ok(())
}
And run it like a normal application:
cargo run
Contributing
See CONTRIBUTING
or just cargo make codegen