5个版本

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

#1322 in WebAssembly

Download history 1/week @ 2024-03-09 1/week @ 2024-03-16 25/week @ 2024-03-30 8/week @ 2024-04-06

95 每月下载量
depit-cli 中使用

MIT/Apache

54KB
1K SLoC

描述

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

清单

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

示例

# 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 编码 sha256 摘要
  • sha512(可选)URL 内容的 hex 编码 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 字段来在这种情况下使缓存无效

依赖

~14–30MB
~469K SLoC