A dagger sdk written in rust for rust
Go to file
kjuulh 66ab2f552c
🚀 chore(Cargo.toml): add thiserror crate to dependencies
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.
2023-04-30 11:41:12 +02:00
.github/workflows fix: remove _ from _type 2023-04-30 00:41:48 +02:00
ci Release dagger-core v0.2.11, dagger-sdk v0.2.22 2023-04-30 10:56:53 +02:00
crates refactor(dagger-codegen): remove unnecessary mutability from field variable in for loop 2023-04-30 11:37:55 +02:00
.gitignore Add base sdk 2023-01-27 08:31:09 +01:00
ARCHITECTURE.md feat: add musl ci (#51) 2023-03-19 12:16:36 +00:00
Cargo.lock Release dagger-core v0.2.11, dagger-sdk v0.2.22 2023-04-30 10:56:53 +02:00
Cargo.toml 🚀 chore(Cargo.toml): add thiserror crate to dependencies 2023-04-30 11:41:12 +02:00
CHANGELOG.md Release dagger-core v0.2.3, dagger-sdk v0.2.9, dagger-rs v0.2.10 2023-02-20 10:21:34 +01:00
CONTRIBUTING.md docs: add basic contributing 2023-03-10 23:49:26 +01:00
Cross.toml feat: add musl ci (#51) 2023-03-19 12:16:36 +00:00
LICENSE.MIT set readme and license 2023-01-27 08:38:39 +01:00
Makefile.toml feat: rename projects to point to github/kjuulh/dagger-sdk 2023-03-18 15:33:14 +01:00
README.md chore(README.md): mark dagger run compatibility and upstream update tasks as completed 2023-04-30 11:39:08 +02:00
renovate.json Add renovate.json 2023-01-27 22:42:47 +00:00

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