Hello,
I'm very happy to announce the release of Guile-ERIS 1.0.0: https://codeberg.org/eris/guile-eris/src/tag/v1.0.0 Guile-ERIS is an implementation of the Encoding for Robust Immutable Storage (ERIS). ERIS is a specification of how some content can be encoded into uniformly sized, encrypted and content-addressed blocks as well as a short read capability. The content can be reassembled from the encrypted blocks only with this read capability. ERIS allows a form of network-optimized content-addressing. See the specification document for more details on ERIS (http://purl.org/eris). A stable version of the ERIS specification (version 1.0.0) has recently been released [1]. This version of Guile-ERIS implements the stable specification of the encoding. Note that the version of this library (Guile-ERIS) and the ERIS specification are independant and coincide by chance. This release of Guile-ERIS (1.0.0) breaks compatibility with the previous release (0.2.0). Subsequent 1.x.y releases will remain API compatible (à la Semantic Versioning). Changes from version 0.2.0 include: - Implement version 1.0.0 of the ERIS specification - Provide `open-eris-output-port` and `open-eris-input-port` for encoding/decoding content to/from a port. - Provide low-level encoder and decoder objects that allow more fine-grained control and advanced functionality. - Remove the transducer-based API (this can be re-implemented with the encoder/decoder objects). - Add an info manual - Extended tests (including property-based tests using Guile-QuickCheck) The manual is also available online: https://eris.codeberg.page/guile-eris/ The API changes where mostly motivated from work on using ERIS for Guix substitutes [2]. The port-based API composes nicer with how Guix and probably many other applications work. This release does not yet contain any bindings to storage or transport layers (e.g. IPFS, SQLite, GNUNet, ...). We plan to add these in subsequent releases. See also the info manual for some pointers on how such bindings may look. Also stay tuned for an update of Guix issue #52555: Decentralized substitute distribution with ERIS [2]. I'm happy to announce that we have received some funding from NGI/NLnet to work on this [3]. In the meantime, further implementations of ERIS have appeared in various languages (Nim, Common Lisp, Smalltalk, OCaml, Rust) and further are in development (Python, Go, JavaScript). See the project site for details (https://eris.codeberg.page/). Best regards, pukkamustard [1] https://lists.sr.ht/~pukkamustard/eris/%3C86lerfkvyo.fsf%40posteo.net%3E [2] https://issues.guix.gnu.org/52555 [3] https://codeberg.org/eris/meta/src/branch/main/ngi-assure/project-plan.org#headline-19