mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2024-11-08 11:01:47 +01:00
A dagger sdk written in rust for rust
kjuulh
e8ae5fcb2c
The plan for the next release has been updated to reflect that the [thiserror](https://docs.rs/thiserror/latest/thiserror/) library has been introduced to improve error handling. |
||
---|---|---|
.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