1{
2 lib,
3 buildDunePackage,
4 fetchurl,
5 fmt,
6 bigstringaf,
7 angstrom,
8 alcotest,
9}:
10
11buildDunePackage rec {
12 pname = "encore";
13 version = "0.8.1";
14
15 minimalOCamlVersion = "4.07";
16
17 src = fetchurl {
18 url = "https://github.com/mirage/encore/releases/download/v${version}/encore-${version}.tbz";
19 hash = "sha256-qg6heSBc6OSfb7vZxEi4rrKh+nx+ffnsCfVvhVR3yY0=";
20 };
21
22 propagatedBuildInputs = [
23 angstrom
24 fmt
25 bigstringaf
26 ];
27 checkInputs = [ alcotest ];
28 doCheck = true;
29
30 meta = {
31 homepage = "https://github.com/mirage/encore";
32 description = "Library to generate encoder/decoder which ensure isomorphism";
33 longDescription = ''
34 Encore is a little library to provide an interface to generate an angstrom decoder and
35 an internal encoder from a shared description. The goal is to ensure a dual isomorphism
36 between them.
37 '';
38 changelog = "https://raw.githubusercontent.com/mirage/encore/refs/tags/v${version}/CHANGES.md";
39 license = lib.licenses.mit;
40 maintainers = [ lib.maintainers.vbgl ];
41 };
42}