1{
2 lib,
3 fetchzip,
4 buildTopkgPackage,
5 brr,
6 bytesrw,
7 cmdliner,
8}:
9
10buildTopkgPackage rec {
11 pname = "jsont";
12 version = "0.1.1";
13
14 minimalOCamlVersion = "4.14.0";
15
16 src = fetchzip {
17 url = "https://erratique.ch/software/jsont/releases/jsont-${version}.tbz";
18 hash = "sha256-bLbTfRVz/Jzuy2LnQeTEHQGojfA34M+Xj7LODpBAVK4=";
19 };
20
21 # docs say these dependendencies are optional, but buildTopkgPackage doesn’t
22 # handle missing dependencies
23
24 buildInputs = [
25 cmdliner
26 ];
27
28 propagatedBuildInputs = [
29 brr
30 bytesrw
31 ];
32
33 meta = {
34 description = "Declarative JSON data manipulation";
35 longDescription = ''
36 Jsont is an OCaml library for declarative JSON data manipulation. it
37 provides:
38
39 • Combinators for describing JSON data using the OCaml values of your
40 choice. The descriptions can be used by generic functions to decode,
41 encode, query and update JSON data without having to construct a
42 generic JSON representation
43 • A JSON codec with optional text location tracking and best-effort
44 layout preservation. The codec is compatible with effect-based
45 concurrency.
46
47 The descriptions are independent from the codec and can be used by
48 third-party processors or codecs.
49 '';
50 homepage = "https://erratique.ch/software/jsont";
51 license = lib.licenses.isc;
52 maintainers = with lib.maintainers; [ toastal ];
53 };
54}