#cargo #subcommand #nono #no-std

no-std app aleph-zero-cargo-nono

检测您的crate及其依赖项与no_std的兼容性

1 个不稳定版本

0.1.9 2023年3月27日

Cargo 插件 中排名第376

Download history 23/week @ 2024-03-13 17/week @ 2024-03-20 25/week @ 2024-03-27 21/week @ 2024-04-03 27/week @ 2024-04-10 44/week @ 2024-04-17 37/week @ 2024-04-24 6/week @ 2024-05-01 32/week @ 2024-05-08 63/week @ 2024-05-15 52/week @ 2024-05-22 22/week @ 2024-05-29 24/week @ 2024-06-05 44/week @ 2024-06-12 10/week @ 2024-06-19

每月下载量88

MIT/Apache 协议

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

演示

asciicast

用法

在您要检查的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

许可证

根据您的选择,许可协议为

依赖项

~5–12MB
~130K SLoC