2.6 KiB
@loafle/nx-rust
A Nx plugin that adds support for Cargo and Rust in your Nx workspace.
Compatibility Chart
@loafle/nx-rust | nx |
---|---|
<=1.2.1 | <=17.1.0 |
>=1.3.0 | >=17.1.0 |
Getting Started
Prerequisites
The following tools need to be installed on your system to take full advantage of @loafle/nx-rust
- Node (LTS)
- Rust / Cargo via https://rustup.rs
Install with npx create-nx-workspace
preset
To bootstrap a new workspace with @loafle/nx-rust
installed and ready, run:
npx create-nx-workspace --preset=@loafle/nx-rust
Installation in already set up workspace
Use your favourite package manager to install in your project:
yarn add -D @loafle/nx-rust
npm install -D @loafle/nx-rust
pnpm add -D @loafle/nx-rust
Initialization
After installing, you can run any of the project generators (binary, library) to have @loafle/nx-rust set up Cargo in your workspace.
Generators
Use Nx Console to see the full list of options for each generator.
@loafle/nx-rust:binary
Creates a Rust binary application to be run independently.
Create a new binary:
nx generate @loafle/nx-rust:binary my-rust-app
@loafle/nx-rust:library
Creates a Rust library that can be used in binaries, or compiled to be used for napi.
Create a new library:
nx generate @loafle/nx-rust:library my-rust-lib
Create a new library with napi:
nx generate @loafle/nx-rust:library my-rust-node-lib --napi
Napi
Generating a library with the --napi
flag will set up the project to be built with it.
Executors
All the executors support these additional properties:
- toolchain: (e.g.
--toolchain='stable' | 'beta' | 'nightly'
);- Uses
stable
by default
- Uses
- target (e.g.
--target=aarch64-apple-darwin
); - profile (e.g.
--profile=dev
) - release
- target-dir
- features (e.g.
--features=bmp
) - all-features
- args
- Arguments forwarding to the executor.
@loafle/nx-rust:build
Runs cargo to build the project
Not supported with napi
@loafle/nx-rust:lint
Runs cargo clippy to lint the project
@loafle/nx-rust:napi
Runs the napi cli to build the project
@loafle/nx-rust:run
Runs cargo run
for the project
Not supported with napi
@loafle/nx-rust:test
Runs cargo test
for the project