#stores #pack #snapshot #directory #object #stored #size

bin+lib elfshaker

elfshaker 高效存储二进制对象

1 个不稳定版本

0.9.0 2022年9月17日

#34#stored

Apache-2.0

160KB
3.5K SLoC

Rust 3K SLoC // 0.1% comments Shell 328 SLoC // 0.1% comments Go 204 SLoC // 0.0% comments

elfshaker

elfshaker 是一个低资源占用、高性能的版本控制系统,专门针对二进制文件进行优化。

  • elfshaker 是用 Rust 编程语言 编写的 CLI 工具。

  • 它将目录快照存储到高度压缩的打包文件中,并提供了对存储文件的快速按需访问。它特别适合存储大量相似文件。

  • 它也是由 manyclangs 项目 使用的存储系统,这是一个父项目,通过提取本地存储的 elfshaker 打包文件中的 LLVM 构建,每个打包文件包含约 1,800 个构建,大小约为 100 MiB,即使完整的原始文件需要 TiB 的存储空间!在现代硬件上提取单个构建只需要 2-4 秒。

入门

请参阅我们的 安装指南 以获取说明。

系统兼容性

以下平台用于我们的 CI 测试

  • Ubuntu 20.04 LTS

但我们旨在在生产环境中支持所有流行的 Linux 平台、macOS 和 Windows。

我们官方支持以下架构

  • AArch64 (发布标签是 aarch64)
  • x86-64 (发布标签是 x86_64)

当前状态

elfshaker 已准备投入生产!文件格式和目录结构已稳定。使用当前 elfshaker 版本创建的打包文件将与未来版本保持兼容。

文档

请参阅我们的 使用指南 以获取说明。

贡献

我们非常欢迎贡献。 请参阅我们的 贡献指南

联系方式

最好的方式是通过 Gitter 上的 elfshaker/community 加入我们。elfshaker 的原始作者是 Peter Waller (@peterwaller-arm) <[email protected]> 和 Veselin Karaganev (@veselink1) <[email protected]>,您也可以通过电子邮件与我们联系。

安全

请参阅我们的 安全策略

许可

elfshaker 在 Apache License 2.0 许可下发布。

依赖项

~8–17MB
~187K SLoC