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 每月下载量
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
的内容!
交互式
使用depit
或depit lock
,使用wit/deps.toml
清单和wit/deps.lock
(如果不存在则创建)填充wit/deps
。
Rust
在你的项目的build.rs
中使用depit::lock!
宏来自动锁定你的wit/deps
。
查看包文档以获取更高级的用法
设计决策
depit
默认是懒惰的,并且只有在绝对必要时才会获取/写入depit
假设从 URL 获取的结果是确定的,即 URLdomain.com
的 GET 返回的内容必须始终返回完全相同的。注意,在这种情况下,您可以在您的清单条目中使用sha256
或sha512
字段来使缓存失效
依赖项
~19-34MB
~568K SLoC