Encoding for Robust Immutable Storage (ERIS)

ERIS is an encoding for arbitrary content into uniformly sized encrypted blocks that can be reassembled only in possession of a short read capability that can be encoded as an URN.

This repository contains the specification documents.

The latest version of the specification is published at: http://purl.org/eris. Please use this URL as a stable reference to the specification.


ERIS is considered to be experimental. A stable version (1.0.0) is planned to be released in 2021. Comments and feedback are very welcome.

See also the section "Changelog" in the specification document.


A list of known implementations of ERIS:

  • guile-eris: The reference implementation in Guile Scheme.
  • elixir-eris: Elixir implementation.
  • eris: Go implementation.
  • eris: Nim implementation.
  • js-eris: Javascript implementation.

See also the section "Implementations" of the specification document.


ERIS was initially developed as part of the openEngiadina project and has been supported by the NLNet Foundation trough the NGI0 Discovery Fund.


Questions and comments may be directed to the ~pukkamustard/eris@sr.ht mailing list or directly to the author (pukkamustard@posteo.net).

You are also invited to share your implementations and use-cases on the mailing list.