1 个不稳定版本
0.1.0 | 2023 年 4 月 11 日 |
---|
#8 在 #buildkit
12KB
buildkit-rs
根据 buildkit 仓库,buildkit 是
一种将源代码转换为构建工件的高效、可表达和可重复的工具包
这是 buildkit 的 Rust 客户端库。
软件包
- buildkit-rs - buildkit-rs 项目的元软件包,它包含所有其他软件包重新导出,没有其他功能
- buildkit-rs-llb - 低级 buildkit 客户端库
- buildkit-rs-proto - buildkit protobuf 定义
- buildkit-rs-util - 用于构建使用 buildkit 的应用程序的实用工具
计划中的软件包
- buildkit-rs-client - 一个高级 buildkit 客户端库,提供与 Go 客户端相似的 API
- buildkit-rs-dockerfile - 用于解析和将 Dockerfile 转换为 LLB 的库(这主要用于验证和测试,而不是生产使用)
质量保证
这个项目的目标是什么?
目标
按重要性排序
- 提供简单、安全、快速的 Rust buildkit 客户端库
- 使 API 符合 Rust 习惯用法
- 提供用于在 Rust 中构建使用 buildkit 的应用程序的其他实用工具
- 保持 API 与 buildkit Go 客户端 API 类似
- 保持代码模块化,以允许轻松启用功能
- 无不安全代码
非目标(非详尽)
- 提供 buildkit 守护进程实现
- 提供 buildkit 的 CLI
- 提供生产就绪的 Dockerfile llb 转换器
简而言之,这个项目并不是试图取代 buildkit,而是提供 buildkit 的 Rust 客户端库。
关于 rust-buildkit 怎么样?
这是一个类似的项目,我们从其 API 中汲取了一些灵感,但它已经不再维护,并且与最新的 buildkit 版本不兼容。该项目由 Cicada 支持,并且在优先级方面位居首位。
为什么不直接使用 buildkit Go 客户端?
Go 客户端是一个优秀的库,但在 Rust 中使用起来并不容易。本机 Rust 客户端库更容易使用,并且对于我们的用例来说速度更快。我们都在使用 Rust,但仍想利用 buildkit 生态系统。
许可证
所有贡献均受Apache-2.0或MIT许可证的许可。如果您贡献任何代码,您同意将其以与项目相同的条款进行许可。
贡献
欢迎任何形式的贡献!如果您有兴趣进行贡献,请尽快提交问题或PR,以便我们讨论并确保它符合项目的目标,同时避免重复工作。
我们也在Cicada Discord的#buildkit-rs
频道中欢迎讨论项目。
依赖项
~9–13MB
~227K SLoC