elfshaker
rvcs
DISCONTINUED
Our great sponsors
elfshaker | rvcs | |
---|---|---|
12 | 1 | |
2,286 | 0 | |
0.4% | - | |
7.9 | 0.0 | |
2 months ago | about 3 years ago | |
Rust | Rust | |
Apache License 2.0 | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
elfshaker
-
FOSS News International #4: November 22-28, 2021
elfshaker v0.9.0
- elfshaker: a low-footprint, high-performance version control system fine-tuned for binaries
-
Elfshaker: GiB – 100 MiB, with 1s access time
Author here. No architecture specific processing currently. Most of the magic happens in zstandard (hat tip to this amazing project).
Please see our new applicability section which explains the result in a bit more detail:
https://github.com/elfshaker/elfshaker/blob/1bedd4eacd3ddd83...
In manyclangs (which uses elfshaker for storage) we arrange that the object code has stable addresses when you do insertions/deletions, which means you don't need such a filter. But today I learned about such filters, so thanks for sharing your question!
One of the authors here, thanks for the feedback. We've tried to improve it here: https://github.com/elfshaker/elfshaker/pull/59
Same here. There is a usage guide, which helped a tiny bit: https://github.com/elfshaker/elfshaker/blob/main/docs/users/...
Honestly, I sort of looked at it for conventional backup strategy...as in, i wonder if it could work as a replacement for tar-zipping up a directory, etc. But, not sure if the use cases is appropriate.
We've just added an applicability section, which explains a bit more what we do. We don't have any ELF specific heuristics.
https://github.com/elfshaker/elfshaker#applicability
In summary, for manyclangs, we compile with -ffunction-sections and -fdata-sections, and store the resulting object files. These are fairly robust to insertions and deletions, since the addresses are section relative, so the damage of any addresses changing is contained within the sections. A somewhat surprising thing is that this works well enough when building many revisions of clang/llvm -- as you go from commit to commit, many commits have bit identical object files, even though the build system often wants to rebuild them because some input has changed.
elfshaker packs use a heuristic of sorting all unique objects by size, before concatenating them and storing them with zstandard. This gives us an amortized cost-per-commit of something like 40kiB after compression with zstandard.
rvcs
We haven't tracked posts mentioning rvcs yet.
Tracking mentions began in Dec 2020.
What are some alternatives?
libgit2 - A cross-platform, linkable library implementation of Git that you can use in your application.
dwarfs - A fast high compression read-only file system for Linux, Windows and macOS
manyclangs - Repository hosting unofficial binary pack files for many commits of LLVM
go-git
archinstall - Arch Linux installer - guided, templates etc.
nixpkgs - Nix Packages collection & NixOS
Git - Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget (https://gitgitgadget.github.io/). Please follow Documentation/SubmittingPatches procedure for any of your improvements.
CadZinho - Minimalist computer aided design (CAD) software
gitoxide - An idiomatic, lean, fast & safe pure Rust implementation of Git
NVIDIAImageScaling - NVIDIA Image Scaling SDK
stratisd - Easy to use local storage management for Linux.