1 unstable release

0.0.0 Oct 28, 2020

#121 in #containing

Apache-2.0 OR MIT

23KB
358 lines

cargo-container

Wrap vanilla cargo rlibs/packages in generated "containers" for various ends.

GitHub crates.io docs.rs License Build Status

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

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.

Dependencies

~2.6–3.5MB
~72K SLoC