dagger-rs/crates/dagger-sdk
kjuulh 6779808322
feat(sdk): with _opts methods
Now all opt values enter into a _opts function instead of the original.
This avoids a lot of verbosity for both None in the case opts are
unwanted, and Some() if they actually are.

They are used like so:

```rust
client.container().from("...");
client.container_opts(Some(ContainerOpts{ ... }))
```

Some from opts will be removed in a future commit/pr
2023-02-19 17:43:12 +01:00
..
examples feat(sdk): with _opts methods 2023-02-19 17:43:12 +01:00
src feat(sdk): with _opts methods 2023-02-19 17:43:12 +01:00
tests feat(sdk): with _opts methods 2023-02-19 17:43:12 +01:00
.gitignore add dagger-sdk 2023-01-29 11:38:13 +01:00
Cargo.toml feat(sdk): move to &str instead of String and introduce builder. 2023-02-19 17:21:40 +01:00
CHANGELOG.md Release dagger-sdk v0.2.4 2023-02-19 15:34:07 +01:00
LICENSE.MIT add dagger-sdk 2023-01-29 11:38:13 +01:00
README.md fix(sdk): readme dagger-rs -> dagger-sdk 2023-02-19 15:33:48 +01:00

dagger-sdk

A dagger sdk written in rust for rust.

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

fn main() -> eyre::Result<()> {
    let client = dagger_sdk::connect()?;

    let version = client
        .container(None)
        .from("golang:1.19".into())
        .with_exec(vec!["go".into(), "version".into()], None)
        .stdout()?;

    println!("Hello from Dagger and {}", version.trim());

    Ok(())
}

And run it like a normal application:

cargo run