Crates.io | elfshaker |
lib.rs | elfshaker |
version | 0.9.0 |
source | src |
created_at | 2022-09-17 14:16:41.446795 |
updated_at | 2022-09-17 14:16:41.446795 |
description | elfshaker stores binary objects efficiently |
homepage | |
repository | |
max_upload_size | |
id | 668190 |
size | 244,320 |
elfshaker
elfshaker is a low-footprint, high-performance version control system fine-tuned for binaries.
elfshaker is a CLI tool written in the Rust programming language.
It stores snapshots of directories into highly-compressed pack files and provides fast on-demand access to the stored files. It is particularly good for storing lots of similar files.
It is also the storage system used by the manyclangs project, a parent project which accelerates bisection of LLVM by a factor of 60x! This is done by extracting builds of LLVM on-demand from locally stored elfshaker packs, each of which contains ~1,800 builds and is about 100 MiB in size, even though the full originals would take TiBs to store! Extracting a single builds takes 2-4s on modern hardware.
See our Installation guide for instructions.
The following platforms are used for our CI tests:
But we aim to support all popular Linux platforms, macOS and Windows in production.
We officially support the following architectures:
aarch64
)x86_64
)elfshaker is production ready! The file format and directory structure is stable. Packs files created with the current elfshaker version will remain compatible with future versions.
See our Usage guide for instructions.
Contributions are highly-appreciated. Refer to our Contributing guide.
The best way to reach us to join the elfshaker/community on Gitter. The original authors of elfshaker are Peter Waller (@peterwaller-arm) <peter.waller@arm.com> and Veselin Karaganev (@veselink1) <veselin.karaganev@arm.com> and you may also contact us via email.
Refer to our Security policy.
elfshaker is licensed under the Apache License 2.0.