···1+{
2+ lib,
3+ fetchzip,
4+ buildTopkgPackage,
5+ brr,
6+ bytesrw,
7+ cmdliner,
8+}:
9+10+buildTopkgPackage 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+}