Die erste Veröffentlichung des elfshaker-Projekts wurde veröffentlicht, das ein Versionsverwaltungssystem für Binärdateien entwickelt, das für die Nachverfolgung von Änderungen in ausführbaren Dateien im ELF-Format optimiert ist. Das System speichert binäre Patches zwischen Dateien, ermöglicht das Extrahieren der benötigten Version anhand eines Schlüssels, was die Ausführung des „git bisect“-Befehls erheblich beschleunigt und den benötigten Speicherplatz drastisch reduziert. Der Code des Projekts wird unter der Lizenz Apache-2.0 verbreitet.
Das Programm zeichnet sich durch hohe Effizienz bei der Speicherung binärer Änderungen in einer Vielzahl ähnlicher Binärdateien aus, die beispielsweise im Zuge inkrementeller Builds eines Projekts entstehen. Insbesondere können die Ergebnisse von zweitausend Neuerstellungen des Clang-Compilers (jede Neuerstellung spiegelt eine Änderung nach jedem Commit wider) in einer einzigen Pack-Datei gespeichert werden, die 100 MB groß ist — das ist 4000-mal weniger, als es bei der getrennten Speicherung erforderlich wäre.
Das Extrahieren eines beliebigen Zustands aus dieser Datei dauert 2-4 Sekunden (60-mal schneller als der „git bisect“-Befehl bei LLVM-Code), was es ermöglicht, die benötigte Version der ausführbaren Dateien des Projekts schnell zu extrahieren, ohne dass die Quelltexte erneut kompiliert werden müssen oder eine Kopie jeder zuvor erstellten Version der ausführbaren Datei gespeichert werden muss.
Quelle: opennet.ru
