A dagger sdk written in rust for rust
Go to file
2023-04-30 00:41:48 +02:00
.github/workflows feat: set cache config in proper place 2023-04-30 00:41:48 +02:00
ci Release dagger-sdk v0.2.21 2023-04-25 08:47:08 +02:00
crates feat: update to dagger-5.1 2023-04-30 00:41:48 +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-sdk v0.2.21 2023-04-25 08:47:08 +02:00
Cargo.toml chore: add new dagger-core-version 2023-04-25 08:46:58 +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 fix: delete other files/folder in downloads: #57 2023-04-25 08:33:43 +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