Rust 笔记Cargo.toml 配置:所有有效的类别Slugs
1. 概述
当我们自己发布一个 Rust 包时,可以在项目的配置文件 Cargo.toml 中配置一个可选字段 categories。该字段是一个该包所属类别的字符串数组,看起来就像这样:
categories = ["command-line-utilities", "development-tools::cargo-plugins"]
你可以最多配置 5 个类别,并且这些类别不可以任意填写,必须与 crates.io 所规定的字符串完全匹配。本文已经整理好了所有可用的类别字符串,并配上了其中文介绍,请参看 2. 可用的类别字符串及其描述 部分
2. 可用的类别字符串及其描述
类别 | 描述 |
accessibility | 帮助克服残疾和损伤的辅助技术,使软件可以被尽可能多的人使用。 |
aerospace | 航空(大气层内)和航天(外层空间)用的 crates。 |
aerospace::drones | 与多翼飞机、固定翼飞机、垂直起降飞机和飞艇/气球相关的 crates。 |
aerospace::protocols | 航空航天用协议实现 的 crates。 |
aerospace::simulation | 与航空航天中使用的任何模拟相关的 crates - 流体、空气动力学等。 |
aerospace::space-protocols | CCSDS等空间中的协议实现。 |
aerospace::unmanned-aerial-vehicles | 与无人机相关的板条箱,如多翼飞机、固定翼飞机、垂直起降飞机、飞艇/气球、漫游车、船只、潜水器。 |
algorithms | Rust实现核心算法,如哈希、排序、搜索等。 |
api-bindings | 特定API的惯用包装,方便从Rust访问。包括HTTP API包装器。在外部FFI绑定中可以找到非惯用的或不安全的绑定。 |
asynchronous | 帮助你处理独立于主程序流的事件,使用像 Futures、Promises、waiting 或 eventing 这样的技术 的 Crates。 |
authentication | 来帮助确认身份的 Crates。 |
caching | 存储以前的计算结果,以便重复使用结果的 Crates。 |
command-line-interface | 帮助创建命令行界面,如参数解析器、行编辑或输出颜色和格式。 |
command-line-utilities | 要在命令行运行的应用程序。 |
compilers | 编译器实现,包括解释器和传输器。 |
compression | 使数据变小的算法。 |
computer-vision | 通过视频或图像理解世界的 crates。 |
concurrency | 用于实现并发和并行计算的 crates。 |
config | 便于应用配置管理的 crates。 |
cryptography | 旨在保护数据的算法。 |
cryptography::cryptocurrencies | 数字货币、钱包和分布式账本的包装箱。 |
database | 数据库管理系统接口的 crates。 |
database-implementations | 数据库允许客户端以高效的方式存储和查询大量数据。这个类别适用于Rust中实现的数据库管理系统。 |
data-structures | Rust实现适合特定目的的组织数据的特定方式。 |
date-and-time | 来管理处理第四维度的内在复杂性的 crates。 |
development-tools | 提供面向开发人员的特性,如测试、调试、林挺、性能分析、自动完成、格式化等。 |
development-tools::build-utils | 用于构建脚本和其他构建时步骤的实用程序。 |
development-tools::cargo-plugins | 扩展 Cargo 能力的子命令的 crates。 |
development-tools::debugging | 帮助你弄清楚你的代码发生了什么,比如日志记录、跟踪或断言的 crates。 |
development-tools::ffi | 帮助你更好地与其他语言接口。这包括绑定生成器和有用的语言结构的 crates。 |
development-tools::procedural-macro-helpers | 帮助你在Rust中编写程序宏。 |
development-tools::profiling | 来帮助你弄清楚你的代码的性能的 crates。 |
development-tools::testing | 来帮助你验证你的代码的正确性的 crates。 |
帮助发送、接收、格式化和解析电子邮件的 crates。 | |
embedded | 主要用于嵌入式设备或没有操作系统的 crates。 |
emulators | 模拟器允许一台计算机像另一台计算机一样运行,通常允许运行主机上没有的软件。视频游戏系统通常被仿真。 |
encoding | 将数据从一种数据格式编码和/或解码成另一种数据格式。 |
external-ffi-bindings | 直接信任用其他语言编写的库的FFI绑定;通常用-sys后缀表示。安全和惯用的包装器属于API绑定类别。 |
filesystem | 处理文件和文件系统的 crates。 |
finance | 处理钱的crates。使用政府支持货币的会计、交易、投资、税收、银行和支付处理。 |
game-development | 对于专注于加速游戏开发的某个单独部分的 crates。 |
game-engines | 对于那些试图为你的所有游戏开发需求提供“一站式商店”的crates。 |
games | 娱乐应用。如果Rust视频游戏是用Rust编程语言实现的,它就属于这一类。帮助创建视频游戏的库属于游戏引擎类别。 |
graphics | 用于图形库和应用程序的板条箱,包括光栅和矢量图形图元,如几何图形、曲线和颜色的 crates。 |
gui | 帮助您创建一个图形用户界面的 crates。 |
hardware-support | 与特定的CPU或其他硬件功能接口的 crates。 |
internationalization | 帮助开发能够适应各种语言和地区的软件的 crates。 |
localization | 帮助国际化软件适应特定语言和地区的板条箱的 crates。 |
mathematics | 数学意义上的 crates。 |
memory-management | 有助于分配、内存映射、垃圾收集、引用计数或与外部内存管理器的接口的 crates。 |
multimedia | 提供音频、视频和图像处理或渲染引擎的 crates。 |
multimedia::audio | 录制、输出或处理音频的 crates。 |
multimedia::encoding | 对多媒体格式的二进制数据进行编码或解码的 crates。 |
multimedia::images | 处理或构建图像的 crates。 |
multimedia::video | 录制、输出或处理视频的 crates。 |
network-programming | 处理较高级网络协议(如FTP、HTTP或SSH)或较低级网络协议(如TCP或UDP)的 crates。 |
no-std | 没有Rust标准库也能工作的 crates。 |
no-std::no-alloc | 没有 rust 的 crates 也能工作的 crates。 |
os | 绑定到特定于操作系统的API。 |
os::freebsd-apis | 绑定到FreeBSD特定的API。 |
os::linux-apis | 绑定到特定于Linux的API。 |
os::macos-apis | 绑定到特定于macOS的API。 |
os::unix-apis | 绑定到特定于Unix的API。 |
os::windows-apis | 绑定到特定于Windows的API。 |
parser-implementations | 为特定格式或语言实现的解析器。 |
parsing | 帮助创建二进制和文本格式的解析器。特定于格式的解析器属于其他更具体的类别。 |
rendering | 2D或3D图形的实时或离线渲染,通常借助显卡。 |
rendering::data-formats | 加载和解析与2D或3D渲染相关的数据格式,如3D模型或动画表。 |
rendering::engine | 屏幕渲染的高级解决方案。 |
rendering::graphics-api | 提供对硬件或操作系统渲染功能的直接访问的 crates。 |
rust-patterns | 针对Rust编程特定情况的共享解决方案。 |
science | 与解决涉及物理、化学、生物、机器学习、地球科学和其他科学领域的问题有关的 crates。 |
science::geo | 空间信息、地图、导航数据和地理信息系统的处理。 |
science::neuroscience | 与大脑和神经系统相关的研究工具和数据处理有关的 crates。 |
science::robotics | 机器人相关的 crates。 |
simulation | 用于为某些活动建模或构建模型,例如模拟网络协议的 crates。 |
template-engine | 旨在将模板与数据结合起来生成结果文档,通常侧重于处理文本的 crates。 |
text-editors | 编辑文本的应用程序。 |
text-processing | 处理人类语言在以文本形式表达时的复杂性的 crates。 |
value-formatting | 允许应用程序格式化显示给用户的值,潜在地使显示适应各种语言和地区的 crates。 |
virtualization | 用于创建和管理任何形式的虚拟环境和资源,包括集装箱化系统。 |
visualization | 查看数据的方式,如绘图或绘图。 |
wasm | 针对WebAssembly或操纵WebAssembly时使用的板条箱。 |
web-programming | 为网络创造应用的 crates。 |
web-programming::http-client | 进行HTTP网络请求的 crates。 |
web-programming::http-server | 通过HTTP提供数据 crates。 |
web-programming::websocket | 通过WebSocket协议进行通信 crates。 |