Go to file
Endo Renberg 6d34ccb6e3 mkerisfs: now with zstd 2023-11-23 22:16:34 +02:00
src mkerisfs: now with zstd 2023-11-23 22:16:34 +02:00
tests Use refc memory management 2023-11-18 19:08:58 +02:00
.envrc Better build system 2023-06-07 18:08:24 +01:00
.gitignore Add lockfile 2023-10-06 10:10:39 +01:00
README.md Initial mkerisfs without compresssion 2023-11-23 22:15:58 +02:00
Tupfile Update build metadata 2023-11-17 21:48:45 +02:00
Tuprules.tup Add lockfile 2023-10-06 10:10:39 +01:00
depends.tup Update build metadata 2023-11-17 21:48:45 +02:00
eris-link.xml Add ERIS-FS to eris-link.xml 2023-08-02 12:08:48 +01:00
eris-open.desktop eriscmd open: support opening URNs directly 2023-07-16 19:15:37 +01:00
eris.nimble mkerisfs: now with zstd 2023-11-23 22:16:34 +02:00
eris48.png Include an icon image 2023-01-21 13:42:20 -06:00
lock.json mkerisfs: now with zstd 2023-11-23 22:16:34 +02:00
nimdoc.cfg Fix documentation links 2023-01-20 22:26:26 -06:00
shell.nix mkerisfs: now with zstd 2023-11-23 22:16:34 +02:00


ERIS logo


A collection of libraries and utilities for the Encoding for Robust Immutable Storage.

The latest version of this repository should be available at Codeberg.



The Debian is too old and crusty to support.

The Nix way:

# https://nixos.org/download.html#download-nix
$ sh <(curl -L https://nixos.org/nix/install) --no-daemon
$ nix-env -iA nixpkgs.gitMinimal
$ nix-env -iA eriscmd -f https://codeberg.org/eris/nix-eris/archive/trunk.tar.gz

The Debian way:

  • Install pkg-config
  • Build and install the current Nim compiler and the Nimble utility from source.
  • Build and install the tkrzw library from source.
  • Build and install the getdns library from source.
  • Run nimble install https://codeberg.org/eris/nim-eris.git.
  • Probably do some other stuff but you are Debian user so you should be able to manage on your own.


eriscmd is a utility program with a bunch of subcommands. They are mostly self-describing.

The eriscmd link utility creates ERIS link files from ERIS URNs. A URN is read from stdin or passed as an argument an a link file is written to stdout.

This utility requires the location of an ERIS CoAP server which should be passed with the environmental variable ERIS_STORE_URL.

A simple example:

$ ERIS_STORE_URL="coap+tcp://[::1]:5683"
$ pv ./some.data | eris-go put --convergent "$ERIS_STORE_URL" | eriscmd link > some.data.eris

eriscmd linkedit

Replace the MIME-type and metadata of ERIS­link files.

eriscmd open

The eriscmd open utility opens ERIS link files in an application that is locally configured for the given MIME type of the link file. To integrate it within a Freedesktop.org environment the eris-open.desktop, eris-link.xml, and eris48.png should be installed in their appropriate locations.

The utility only works as well as the associations that are configured for different MIME types, see the xdg-mime utility from xdg-utils for more information.

The utility requires a configuration file that describes the location of the preferred HTTP decoder service. The file is called eris-open.ini and must be located in the XDG_CONFIG_HOME XDG_CONFIG_DIRS hierarchy (~./config/ is good enough).

A simple example:


eriscmd verify

The eriscmd verify utility will fetch all blocks that constitute a read capability. It parses capabilities on the command-line in URN form and otherwise parses CBOR on standard input to find capabilities.


cat *.eris | eriscmd verify


Creates ERIS-FS images. This utility only writes out raw images, so pipe it to the ERIS encoder of your choice.

$ mkerisfs --1k «some relative file path» | eris-go put --convergent "$ERIS_STORE_URL"


The rclerislink utility is a document input handler for the Recoll indexer that allows ERIS link file content to be dereferenced and indexed.

This input handler needs to be registered in the ~/.recoll/mimeconf file so that it is invoked for the application/x-eris-link+cbor file MIME type. For detection of this MIME type to work the eris-link.xml file should be installed in a location where it is discoverable by xdg-mime query filetype ….

application/x-eris-link+cbor = execm /some/path/to/rclerislink

Nix development

$ nix develop git+https://codeberg.org/eris/nix-eris#nim-eris

The drafting of the ERIS specification and this implementation was funded by the NGI Assure Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program.