From 43c98b9e4bb46a09aa2122c136500fda2cfcbe99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=B7=F0=90=91=91=F0=90=91=B4=F0=90=91=95=F0=90=91=91?= =?UTF-8?q?=F0=90=91=A9=F0=90=91=A4?= Date: Sun, 6 Jul 2025 23:56:51 +0700 Subject: [PATCH] ocamlPackages.bytesrw: init at 0.1.0 --- .../ocaml-modules/bytesrw/default.nix | 48 +++++++++++++++++++ pkgs/top-level/ocaml-packages.nix | 2 + 2 files changed, 50 insertions(+) create mode 100644 pkgs/development/ocaml-modules/bytesrw/default.nix diff --git a/pkgs/development/ocaml-modules/bytesrw/default.nix b/pkgs/development/ocaml-modules/bytesrw/default.nix new file mode 100644 index 000000000000..4894c14df29f --- /dev/null +++ b/pkgs/development/ocaml-modules/bytesrw/default.nix @@ -0,0 +1,48 @@ +{ + lib, + fetchzip, + libblake3, + libmd, + xxHash, + zlib, + zstd, + buildTopkgPackage, +}: + +buildTopkgPackage rec { + pname = "bytesrw"; + version = "0.1.0"; + + minimalOCamlVersion = "4.14.0"; + + src = fetchzip { + url = "https://erratique.ch/software/bytesrw/releases/bytesrw-${version}.tbz"; + hash = "sha256-leH3uo5Q8ba22A/Mbl9pio0tW/IxCTGp77Cra7l4D80="; + }; + + # docs say these are optional, but buildTopkgPackage doesn’t handle missing + # dependencies + + buildInputs = [ + libblake3 + libmd + xxHash + zlib + zstd + ]; + + meta = { + description = "composable, memory efficient, byte stream readers and writers compatible with effect-based concurrency"; + longDescription = '' + Bytesrw extends the OCaml Bytes module with composable, memory efficient, + byte stream readers and writers compatible with effect-based concurrency. + + Except for byte slice life-times, these abstractions intentionnaly + separate away ressource management and the specifics of reading and + writing bytes. + ''; + homepage = "https://erratique.ch/software/bytesrw"; + license = lib.licenses.isc; + maintainers = with lib.maintainers; [ toastal ]; + }; +} diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index b77ac0a0ac67..ba1c955db65b 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -141,6 +141,8 @@ let bwd = callPackage ../development/ocaml-modules/bwd { }; + bytesrw = callPackage ../development/ocaml-modules/bytesrw { }; + bytestring = callPackage ../development/ocaml-modules/bytestring { }; bz2 = callPackage ../development/ocaml-modules/bz2 { };