3
0
Fork
You've already forked zig-eris
0
No description
  • Zig 90.4%
  • JavaScript 9%
  • HTML 0.6%
pm 6c4fb6a01d eris.decoder: add position
FossilOrigin-Name: 6585c3a3c4619e69cca9d57ae2b0119dce7c498cd038da1e06e95de8695e2bab
2026年07月12日 13:52:41 +00:00
LICENSES reuse and acks 2026年07月12日 08:03:53 +00:00
src eris.decoder: add position 2026年07月12日 13:52:41 +00:00
test eris.decoder: add position 2026年07月12日 13:52:41 +00:00
build.zig wasm: rename to eris.zig 2026年07月12日 07:58:36 +00:00
build.zig.zon initial commit 2026年07月10日 10:28:13 +00:00
README reuse and acks 2026年07月12日 08:03:53 +00:00

# zig-eris
A [Zig](https://ziglang.org/) implementation of [ERIS](http://purl.org/eris).
## Raisons d'être
This is an experiment into:
### Usable from C and WASM
The Zig tooling allows building of libraries usable from C-land and WASM-land.
### ERIS without allocations
The implementation does not do any dynamic allocations. All buffers need to be allocated before library initialization.
The trick is to pre-allocate a fixed number of levels which does not need to be large. With 3 levels we can encode 4MiB of data using block size 1KiB and 512GiB of data using block size large - enough for most practical purposes.
The number of levels is a Zig comptime, if needed a library with support for even larger content can be built.
This should make the core encoding performant.
## Acknowledgment
zig-eris [has been supported](https://nlnet.nl/project/Goblins-Persistence/) by the [NLnet Foundation](https://nlnet.nl) trough the [NGI Zero Core Fund](https://nlnet.nl/core/).
## License
[GPL-3.0-or-later](./LICENSES/GPL-3.0-or-later.txt)