#buildkit #client #artifact #converting #build #build-kit

buildkit-rs

Rust 对 BuildKit 的客户端

1 个不稳定版本

0.1.0 2023 年 4 月 11 日

#8#buildkit

Apache-2.0 或 MIT

12KB

buildkit-rs

根据 buildkit 仓库,buildkit 是

一种将源代码转换为构建工件的高效、可表达和可重复的工具包

这是 buildkit 的 Rust 客户端库。

软件包

计划中的软件包

  • 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