6

crates.io上注册一般有用的(实用程序/应用程序)是否可以接受?

FAQ没有解决这个问题,并且通过浏览,有最终用户应用程序的示例(主要是命令行工具)。

还是 crates.io?仅适用于图书馆?


我问这个是因为文档提示了库的使用、API 的语义版本控制等,但没有明确引用打包应用程序的案例。

4

2 回答 2

6

是的,因为您可以使用cargo install它在系统范围内安装和管理这些应用程序。如果不鼓励这种使用,我会怀疑该命令根本不存在,或者至少具有非常有限的适用性。

片段来自cargo install --help

用法:

 cargo install [options] [<crate>]
 cargo install [options] --list

[...]

此命令管理 Cargo 的本地已安装二进制 crate 集。只能安装具有[[bin]]目标的软件包,并且所有二进制文件都安装到安装根目录的bin文件夹中。安装根目录按优先顺序由--root$CARGO_INSTALL_ROOTinstall.root配置键、最后是主目录($CARGO_HOME如果已设置或 $HOME/.cargo默认设置)确定。

可以从多个来源安装板条箱。默认位置是 crates.io,但--git--path标志可以更改此来源。如果源包含多个包(例如 crates.io 或具有多个 crate 的 git 存储库),<crate> 则需要该参数来指示应安装哪个 crate。

于 2016-10-27T10:48:37.367 回答
1

这不应该是向 crates.io 发布应用程序的主要原因,但我在这里列出它是因为它仍然是一个很好的理由。:)

Rust 团队偶尔会使用名为crater的工具来检查 crates.io 上发布的所有 crate 的回归,通常在合并具有不确定后果的拉取请求之前。如果您编写的一些代码恰好在今天编译,但由于编译器中的错误修复而停止编译1,那么他们甚至可能向您的项目提交拉取请求以修复您的代码!


1通常,当发生此类重大更改时,至少有一个先前的版本会在警告变为错误之前报告警告。

于 2016-10-28T02:57:35.957 回答