1 个不稳定版本
0.1.9 | 2023年3月27日 |
---|
在 Cargo 插件 中排名第376
每月下载量88次
47KB
1K SLoC
cargo nono - 检测您的crate及其依赖项与no_std的兼容性
动机
从嵌入式编程,到Rust中的智能合约,再到通用的跨平台便携式crate,带有#![no_std]
的crate变得越来越普遍。然而,目前要找出一个crate是否与no_std
兼容以及为什么(不兼容)是一个非常繁琐的过程,通常需要漫长的试错过程,并深入挖掘所有依赖项的源代码。
cargo nono试图帮助您导航当前的no_std
使用雷区及其最大的禁忌。
安装
预构建的二进制文件
cargo-nono
还提供预构建的二进制文件(适用于CI)
curl -LSfs https://japaric.github.io/trust/install.sh | \
sh -s -- --git hobofan/cargo-nono
从crates.io安装
cargo install cargo-nono
# For warnings with more informative messages install like this
RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-nono
演示
用法
在您要检查的crate目录中运行
cargo nono check
运行cargo nono check
子命令还支持--no-default-features
和--features <FEATURES>
标志,以帮助进行条件no_std
设置。
特性
- 通过查找具有
no_std
属性的代码片段或常用的条件性代码片段#![no_std]
或#![cfg_attr(not(feature = "std"), no_std)]
- 帮助确定哪些依赖和功能标志激活了
std
功能标志 - 警告代码中
use std::
语句的使用
计划中的功能
- 警告
[build-dependencies]
功能溢出:cargo#5730
许可证
根据您的选择,许可协议为
- Apache许可证版本2.0,(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
。
依赖项
~5–12MB
~130K SLoC