2024-06-28 20:33:21 +08:00
..
2024-02-28 16:30:48 +08:00
2024-02-28 16:30:48 +08:00
2024-06-28 20:33:21 +08:00
2024-02-28 16:30:48 +08:00
2024-02-28 16:30:48 +08:00
2024-02-28 16:30:48 +08:00
2024-02-28 16:30:48 +08:00
2024-02-28 16:30:48 +08:00
2024-02-28 16:30:48 +08:00

Overview

The crate contains cargo-component, a cargo subcommand to enable component-level access control in Asterinas. For more info about Asterinas component system, see the RFC. The implementation mainly follows rust clippy. Internally, this tool will call cargo check to compile the whole project and bases the analysis on MIR.

install

After running make setup for Asterinas, this crate can be created with cargo.

cargo install --path .

This will install two binaries cargo-component and component-driver at $HOME/.cargo/bin(by default, it depends on the cargo config).

Usage

Use cargo component or cargo component check or cargo component audit. The three commands are the same now. For Asterinas, we shoud use another alias command cargo component-check, which was defined in src/.cargo/config.toml.

Two notes:

  • The directory where you run the command should contains a Components.toml config file, where defines all components and whitelist.
  • The project checked by cargo-component should use the same rust-toolchain as cargo-component, which was defined in rust-toolchain.toml.

Known limitations

This tool uses rustc private APIs, which is highly unstable. So if the rust toolchain is updated, the tool may need updates too.