Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/denzp/cargo-wharf

Cacheable and efficient Docker images builder for Rust
https://github.com/denzp/cargo-wharf

async-await buildkit docker rust

Last synced: about 1 month ago
JSON representation

Cacheable and efficient Docker images builder for Rust

Awesome Lists containing this project

README

        

# Cargo Wharf - efficient Docker images builder for Rust

## Features
* **Efficiently cache crate dependencies.**

*Every dependency is built in its isolated environment and cached independently from others.*
* **Small output images.**

*Only binaries (and eventually mandatory static assets) in the output image. No useless build artifacts.*
* **No extra host tools has to be installed.**

*Only Docker!*
* **Ability to produce test images.**

*The container created from that image will do the same as `cargo test` but in a safe isolated environment.*



## Usage
**Disclaimer #1** Modern Docker with [BuildKit] enabled is required!

**Disclaimer #2** Due to active development and expected breaking changes, `cargo-wharf` should not be used in production yet.

**Usage guide can be found in the BuildKit frontend [README](cargo-wharf-frontend/README.md).**

### `cargo-wharf-frontend`
[[Docker Hub](https://hub.docker.com/r/denzp/cargo-wharf-frontend)]
[[README](cargo-wharf-frontend/README.md)]
[[CHANGELOG](cargo-wharf-frontend/CHANGELOG.md)]

The custom frontend for BuildKit that produces LLB graph out of Cargo's build plan.

### `cargo-container-tools`
[[Docker Hub](https://hub.docker.com/r/denzp/cargo-container-tools)]
[[README](cargo-container-tools/README.md)]
[[CHANGELOG](cargo-container-tools/CHANGELOG.md)]

Auxiliary tools that are useful for building Docker images of Rust crates and for `cargo-wharf-frontend` in particular.

## License
`cargo-wharf` is primarily distributed under the terms of both the MIT license and
the Apache License (Version 2.0), with portions covered by various BSD-like
licenses.

See LICENSE-APACHE, and LICENSE-MIT for details.

## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in `cargo-wharf` by you, as defined in the Apache-2.0 license,
shall be dual licensed as above, without any additional terms or conditions.

[BuildKit]: https://github.com/moby/buildkit