mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-08 12:56:48 +00:00
19 lines
1.4 KiB
Markdown
19 lines
1.4 KiB
Markdown
## 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](https://github.com/asterinas/Asterinas/issues/58). The implementation mainly follows [rust clippy](https://github.com/rust-lang/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.
|
|
```shell
|
|
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 should 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. |