10 个版本
0.1.9 | 2020年9月27日 |
---|---|
0.1.8 | 2020年1月8日 |
0.1.6 | 2019年9月10日 |
0.1.5 | 2019年6月29日 |
0.1.2 | 2018年11月16日 |
#308 in Cargo 插件
26 每月下载量
6MB
1K SLoC
包含 (Mach-o 可执行文件, 1.5MB) crate_itself_fixed_no_std-2702d7a9e7ab9d0b, (Mach-o 可执行文件, 590KB) crate_itself_fixed_no_std, (Mach-o 可执行文件, 1MB) verify_dependency_with_std-8cdf0632c65e0c89, (Mach-o 可执行文件, 1MB) verify_dependency_with_std-8cdf0632c65e0c89, (Mach-o 可执行文件, 285KB) detect_explicit_use_std, (Rust 库, 295KB) libverify_dependency_with_std-9585336dd8a289b9.rlib 以及 77 个其他文件。
运行 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 License, Version 2.0, (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖项
~5–12MB
~130K SLoC