1{
2 lib,
3 fetchzip,
4 libblake3,
5 libmd,
6 xxHash,
7 zlib,
8 zstd,
9 buildTopkgPackage,
10}:
11
12buildTopkgPackage rec {
13 pname = "bytesrw";
14 version = "0.1.0";
15
16 minimalOCamlVersion = "4.14.0";
17
18 src = fetchzip {
19 url = "https://erratique.ch/software/bytesrw/releases/bytesrw-${version}.tbz";
20 hash = "sha256-leH3uo5Q8ba22A/Mbl9pio0tW/IxCTGp77Cra7l4D80=";
21 };
22
23 # docs say these are optional, but buildTopkgPackage doesn’t handle missing
24 # dependencies
25
26 buildInputs = [
27 libblake3
28 libmd
29 xxHash
30 zlib
31 zstd
32 ];
33
34 meta = {
35 description = "Composable, memory efficient, byte stream readers and writers compatible with effect-based concurrency";
36 longDescription = ''
37 Bytesrw extends the OCaml Bytes module with composable, memory efficient,
38 byte stream readers and writers compatible with effect-based concurrency.
39
40 Except for byte slice life-times, these abstractions intentionnaly
41 separate away ressource management and the specifics of reading and
42 writing bytes.
43 '';
44 homepage = "https://erratique.ch/software/bytesrw";
45 license = lib.licenses.isc;
46 maintainers = with lib.maintainers; [ toastal ];
47 };
48}