Dear followers of ERIS,
I'd like to announce an updated version of ERIS-FS:
https://eris.codeberg.page/eer/eris-fs.xml
ERIS-FS is a format for encoding and transporting file-system trees
using ERIS while allowing de-duplication of files.
An initial version of ERIS-FS was published in July this year. The idea
was to pack files into a single stream of bytes (like Tar or SquashFS)
but align files to block boundaries.
While working on Guix substitutes via ERIS I noticed considerable
performance issues: The initial version of ERIS-FS was limited to a
single block size for all files. As a majority of files are small, we
were using block size of 1KiB. Encoding the occasional files that were
large (and some files are very large) was very inefficient. On the
other hand using block size of 32KiB would also be inefficient as most
files are very small.
The updated version of ERIS-FS fixes this by not packing all files into
a single sequence of bytes but instead referencing files by their ERIS
read capabilities. This allows the usage of different block sizes for
files in the file system.
The ERIS-FS format is simplified to a single CBOR structure that holds
references to files. Decoding does no longer require a random-access
decoder and can be parallelized much easier (by decoding individual
files in parallel). The new format is also easier to implement on
constrained environments such as the Web (ERIS-FS support in ERIStekt -
the Firefox extension - is planned).
The update is a breaking change with the previous format. The version
number has been incremented.
The Guile and Go implementations have been updated. Lookout for an
update to the Guix+ERIS patches!
A big thanks to the NLnet Foundation for supporting this work (the
initial version of ERIS-FS was sponsored by NGI Assure).
Happy hacking,
pukkamustard
Hello followers,
The eris-go implementation has been updated to support the latest version
of ERIS-FS. This includes creating ERIS-FS capablities, extracting the
contents of ERIS-FS, and a transparent FUSE interface.
There is also a proper manpage for the command-line utility:
https://codeberg.org/eris/eris-go/src/branch/trunk/eris-go.1.md
Hail ERIS,
E.