# cargo-container
Wrap vanilla cargo rlibs/packages in generated "containers" for various ends.
[![GitHub](https://img.shields.io/github/stars/MaulingMonkey/cargo-container.svg?label=GitHub&style=social)](https://github.com/MaulingMonkey/cargo-container)
[![crates.io](https://img.shields.io/crates/v/cargo-container.svg)](https://crates.io/crates/cargo-container)
[![docs.rs](https://docs.rs/cargo-container/badge.svg)](https://docs.rs/cargo-container)
[![License](https://img.shields.io/crates/l/cargo_container.svg)](https://github.com/MaulingMonkey/cargo-container)
[![Build Status](https://travis-ci.com/MaulingMonkey/cargo-container.svg?branch=master)](https://travis-ci.com/MaulingMonkey/cargo-container)
Quickstart
* Clone this repository
* Open in VS Code
* Install extensions recommended by workspace
* Hit F5
This will build and run one of the example projects of [example/multiplatform] in Chrome
Basic Guide
* `cargo install cargo-container`
* Author a `Container.toml` workspace instead of a regular `Cargo.toml` workspace
* Write a `[workspace]` like you would in `Cargo.toml`, with `members` (and optionally `exclude`)
* Define one or more `[[build]]` sections defining what `crates` to wrap with what `tools`
* Optional: specify more crates to auto-install via `[local-install]`
* Author the crates to wrap in said boilerplate
* Run `cargo container build`. This will:
* Install any bin dependencies specified by `[local-install]`
* Run `tools` to generate Cargo.toml projects
* Generate a `Cargo.toml` alongside `Container.toml` that references the generated dependencies
* Runs `tools` to build generated Cargo.toml projects
* Profit!
License
Licensed under either of
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.