4个版本

0.2.2 2023年4月11日
0.2.1 2023年4月10日
0.2.0 2023年4月10日
0.1.0 2023年4月7日

#1390 in WebAssembly

45 每月下载量

MIT/Apache

86KB
1.5K SLoC

描述

depit是一个简单的WIT依赖管理器二进制文件和Rust库,它管理你的wit/deps。其主要目标是确保你的wit/deps中的内容与你的依赖清单(默认:wit/deps.toml)和依赖锁(默认:wit/deps.lock)保持一致。

清单

依赖清单是一个将依赖名称映射到其源规范的TOML编码表。在其最简单的形式中,源规范是一个包含wit子目录的目录树,其中包含wit文件的gzipped tarball的URL字符串。

示例

# wit/deps.toml
http = "https://github.com/WebAssembly/wasi-http/archive/6c6855a7329fb040a48ecdbad1765be8e694416c.tar.gz"
io = "https://github.com/rvolosatovs/wasi-io/archive/v0.1.0.tar.gz"
logging = "https://github.com/WebAssembly/wasi-logging/archive/d106e59b25297d0496e6a5d221ad090e19c3aaa3.tar.gz"
poll = "https://github.com/WebAssembly/wasi-poll/archive/3ff76670b0d43bc7c8a224c2e65880a963416835.tar.gz"
random = "https://github.com/WebAssembly/wasi-random/archive/28970c50c3797c0087fa75a15e88bfa39b91e0a0.tar.gz"

源规范也可以是具有以下字段的结构

  • url - 与URL字符串相同的格式
  • sha256 - (可选) URL内容的hex-encoded sha256摘要
  • sha512 (可选) URL内容的hex-encoded sha512摘要

示例

# wit/deps.toml
[logging]
url = "https://github.com/WebAssembly/wasi-logging/archive/d106e59b25297d0496e6a5d221ad090e19c3aaa3.tar.gz"
sha256 = "4bb4aeab99e7323b30d107aab78e88b2265c1598cc438bc5fbc0d16bb63e798f"
sha512 = "13b52b59afd98dd4938e3a651fad631d41a2e84ce781df5d8957eded77a8e1ac4277e771a10225cd4a3a9eae369ed7e8fee6e26f9991a2caa7c97c4a758b1ae6"

用法

注意,depit假设它完全控制wit/deps,因此它可以随时删除和修改wit/deps的内容!

交互式

使用depitdepit lock,使用wit/deps.toml清单和wit/deps.lock(如果不存在则创建)填充wit/deps

Rust

在你的项目的build.rs中使用depit::lock!宏来自动锁定你的wit/deps

查看包文档以获取更高级的用法

设计决策

  • depit默认是懒惰的,并且只有在绝对必要时才会获取/写入
  • depit 假设从 URL 获取的结果是确定的,即 URL domain.com 的 GET 返回的内容必须始终返回完全相同的。注意,在这种情况下,您可以在您的清单条目中使用 sha256sha512 字段来使缓存失效

依赖项

~19-34MB
~568K SLoC