5个版本
0.1.4 | 2024年4月12日 |
---|---|
0.1.3 | 2024年4月11日 |
0.1.2 | 2024年4月10日 |
0.1.1 | 2024年4月8日 |
0.1.0 | 2024年4月8日 |
#257 in 操作系统
每月 48 次下载
在 7 crates 中使用
11KB
darling-api
注意:darling-api目前处于预1.0版本,会有破坏性更改。如果您确实想要实现一个将在近期内发生破坏性更改并需要更新的API,请慎重考虑。
darling-api
是一个库包,允许自定义 darling 的实现。Darling设计为可以扩展而不需要更改Darling本身,这样任何人都可以为其包管理器实现它,而无需向Darling本身做出贡献。此API提供了实现Darling所需的所有功能。
使用方法
此API可以通过修改现有的模板或从头创建一个新的crate来实现。由于一些关于命名的怪癖,建议使用模板,但您也可以从零开始,如果您理解如何正确实现它。
从模板实现
darling-template 为实现Darling提供了一个起点。要使用它,首先在您的本地机器上设置模板
带有版本控制
打开仓库并点击“使用此模板 > 创建新仓库”。这将设置一个git仓库,您可以在本地机器上克隆并立即使用git进行开发。
无版本控制
如果您现在不想为项目创建git仓库,您可以直接克隆模板以将其放入本地机器。
下一步
接下来,重命名结构体并实现缺失的方法。仔细阅读每个方法的文档,了解它必须做什么以及不能做什么。不要重命名全局 PACKAGE_MANAGER
变量。
在 Cargo.toml
中编辑您的crate名称,并确保它以 darling-
开头,例如 darling-npm
或 darling-vscode
。完成时发布您的crate!
就这样!一旦您的crate发布,任何人都可以使用Darling使用它,无需更新。
手动实现
或者,您也可以从头开始创建一个不使用模板的模块。过程如下
- 创建一个Rust(库)项目。 其名称必须以
darling-
开头(技术上也可以是darling_
,但不是常规做法)。例如,cargo new darling-example --lib
。请确保你的名称在 crates.io 上未被占用。 - 使用
cargo add darling-api
将darling-api
添加到你的依赖项中。 - 创建一个空的struct,实现
darling::PackageManager
。- 确保
get_name()
函数在所有调用中返回一致的价值,并且 不要返回 "module"。module
是darling用来管理自身的一个内置保留名称。此外,它应该与其他darling模块唯一,否则它们将不兼容。常规做法是将其设置为crate的名称,但不包含darling-
前缀。例如,the `darling`
- 确保
- 使用名称
PACKAGE_MANAGER
在你的crate根目录中声明一个你的struct的pub static
变量。 - 使用
cargo publish
在crates.io
上发布你的crate。
依赖项
~130KB