libcnb-cargo   ![Latest Version] ![MSRV]

A Cargo command for managing buildpacks written with libcnb.rs.

Installation

shell $ cargo install libcnb-cargo

Usage

Currently, there is only one sub-command: package. It allows users to package their Rust buildpack in a spec-compliant manner and helps with cross-compilation.

```shell $ cargo libcnb package --help Packages a libcnb.rs Cargo project as a Cloud Native Buildpack

Usage: cargo libcnb package [OPTIONS]

Options: --no-cross-compile-assistance Disable cross-compile assistance --release Build in release mode, with optimizations --target Build for the target triple [default: x86_64-unknown-linux-musl] --package-dir Directory for packaged buildpacks, defaults to 'packaged' in Cargo workspace root -h, --help Print help ```

Using it is fairly simple, run cargo libcnb package inside the buildpack's project directory:

```shell $ cargo libcnb package 🚚 Preparing package directory... 🖥️ Gathering Cargo configuration (for x86_64-unknown-linux-musl) 🏗️ Building buildpack dependency graph... 🔀 Determining build order... 🚚 Building 1 buildpacks... 📦 [1/1] Building libcnb-examples/my-buildpack (./)

Omitting compilation output...

Finished dev [unoptimized] target(s) in 8.24s

Successfully wrote buildpack directory: packaged/x8664-unknown-linux-musl/debug/libcnb-examplesmy-buildpack (4.09 MiB) ✨ Packaging successfully finished!

💡 To test your buildpack locally with pack, run: pack build my-image-name \ --buildpack packaged/x8664-unknown-linux-musl/debug/libcnb-examplesmy-buildpack \ --path /path/to/application

/Users/example/src/my-buildpack/packaged/x8664-unknown-linux-musl/debug/libcnb-examplesmy-buildpack ```