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 中使用

MIT 许可证

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-npmdarling-vscode。完成时发布您的crate!

就这样!一旦您的crate发布,任何人都可以使用Darling使用它,无需更新。

手动实现

或者,您也可以从头开始创建一个不使用模板的模块。过程如下

  • 创建一个Rust(库)项目。 其名称必须以 darling- 开头(技术上也可以是 darling_,但不是常规做法)。例如,cargo new darling-example --lib。请确保你的名称在 crates.io 上未被占用。
  • 使用 cargo add darling-apidarling-api 添加到你的依赖项中。
  • 创建一个空的struct,实现 darling::PackageManager
    • 确保 get_name() 函数在所有调用中返回一致的价值,并且 不要返回 "module"module 是darling用来管理自身的一个内置保留名称。此外,它应该与其他darling模块唯一,否则它们将不兼容。常规做法是将其设置为crate的名称,但不包含 darling- 前缀。例如,the `darling`
  • 使用名称 PACKAGE_MANAGER 在你的crate根目录中声明一个你的struct的 pub static 变量。
  • 使用 cargo publishcrates.io 上发布你的crate。

依赖项

~130KB