1{
2 self,
3 bash,
4 fetchpatch,
5 fzf,
6 lib,
7 openssl,
8 zstd,
9}:
10
11let
12 js_of_ocaml-compiler = self.js_of_ocaml-compiler.override { version = "5.9.1"; };
13 js_of_ocaml = self.js_of_ocaml.override { inherit js_of_ocaml-compiler; };
14 gen_js_api = self.gen_js_api.override {
15 inherit js_of_ocaml-compiler;
16 ojs = self.ojs.override { inherit js_of_ocaml-compiler; };
17 };
18 js_of_ocaml-ppx = self.js_of_ocaml-ppx.override { inherit js_of_ocaml; };
19in
20
21with self;
22
23{
24
25 abstract_algebra = janePackage {
26 pname = "abstract_algebra";
27 hash = "sha256-W2rSSbppNkulCgGeTiovzP5zInPWIVfflDxWkGpEOFA=";
28 meta.description = "A small library describing abstract algebra concepts";
29 propagatedBuildInputs = [
30 base
31 ppx_jane
32 ];
33 };
34
35 accessor = janePackage {
36 pname = "accessor";
37 hash = "sha256-1inoFwDDhnfhW+W3aAkcFNUkf5Umy8BDGDEbMty+Fts=";
38 meta.description = "A library that makes it nicer to work with nested functional data structures";
39 propagatedBuildInputs = [ higher_kinded ];
40 };
41
42 accessor_async = janePackage {
43 pname = "accessor_async";
44 hash = "sha256-EYyxZur+yshYaX1EJbWc/bCaAa9PDKiuK87fIeqhspo=";
45 meta.description = "Accessors for Async types, for use with the Accessor library";
46 propagatedBuildInputs = [
47 accessor_core
48 async_kernel
49 ];
50 };
51
52 accessor_base = janePackage {
53 pname = "accessor_base";
54 hash = "sha256-6LJ8dKPAuaxWinArkPl4OE0eYPqvM7+Ao6jff8jhjXc=";
55 meta.description = "Accessors for Base types, for use with the Accessor library";
56 propagatedBuildInputs = [ ppx_accessor ];
57 };
58
59 accessor_core = janePackage {
60 pname = "accessor_core";
61 hash = "sha256-ku83ZfLtVI8FvQhrKcnJmhmoNlYcVMKx1tor5N8Nq7M=";
62 meta.description = "Accessors for Core types, for use with the Accessor library";
63 propagatedBuildInputs = [
64 accessor_base
65 core_kernel
66 ];
67 };
68
69 async = janePackage {
70 pname = "async";
71 hash = "sha256-CwRPH5tFZHJqptdmNwdZvKvSJ1Qr21gV1jaxsa/vFBU=";
72 meta.description = "Monadic concurrency library";
73 propagatedBuildInputs = [
74 async_rpc_kernel
75 async_log
76 async_unix
77 textutils
78 ];
79 doCheck = false; # we don't have netkit_sockets
80 };
81
82 async_durable = janePackage {
83 pname = "async_durable";
84 hash = "sha256-CAU54j3K47p4hQqAtHJYuAQ0IvZPMQZKFp5J7G+xtjM=";
85 meta.description = "Durable connections for use with async";
86 propagatedBuildInputs = [
87 async_kernel
88 async_rpc_kernel
89 core
90 core_kernel
91 ppx_jane
92 ];
93 };
94
95 async_extra = janePackage {
96 pname = "async_extra";
97 hash = "sha256-rZUROyYrvtgnI+leTMXuGcw71MfVhqdkfp9EIhAFUnM=";
98 meta.description = "Monadic concurrency library";
99 propagatedBuildInputs = [ async_kernel ];
100 };
101
102 async_find = janePackage {
103 pname = "async_find";
104 hash = "sha256-byvLJvhq7606gKP1kjLRYe3eonkAG3Vz6wQcsjJOiOE=";
105 meta.description = "Directory traversal with Async";
106 propagatedBuildInputs = [ async ];
107 };
108
109 async_inotify = janePackage {
110 pname = "async_inotify";
111 hash = "sha256-608G8OKQxqrQdYc1Cfrd8g8WLX6QwSeMUz8ORuSbmA8=";
112 meta.description = "Async wrapper for inotify";
113 propagatedBuildInputs = [
114 async_find
115 inotify
116 ];
117 };
118
119 async_interactive = janePackage {
120 pname = "async_interactive";
121 hash = "sha256-hC7mLDLtvIEMKLMeDOC5ADiAGJlJqYF35RDI+porsKA=";
122 meta.description = "Utilities for building simple command-line based user interfaces";
123 propagatedBuildInputs = [ async ];
124 };
125
126 async_js = janePackage {
127 pname = "async_js";
128 hash = "sha256-4t7dJ04lTQ0b6clf8AvtyC8ip43vIcEBXgHJLiRbuGM=";
129 meta.description = "A small library that provide Async support for JavaScript platforms";
130 buildInputs = [ js_of_ocaml-ppx ];
131 propagatedBuildInputs = [
132 async_rpc_kernel
133 js_of_ocaml
134 uri-sexp
135 ];
136 };
137
138 async_kernel = janePackage {
139 pname = "async_kernel";
140 hash = "sha256-fEbo7EeOJHnBqTYvC/o2a2x69XPnANbe15v/yv29l/4=";
141 meta.description = "Monadic concurrency library";
142 propagatedBuildInputs = [ core_kernel ];
143 };
144
145 async_log = janePackage {
146 pname = "async_log";
147 hash = "sha256-XeWC3oC0n4or3EDLrNLWXMWhyhH6kcah0Mdb56rZ5lA=";
148 meta.description = "Logging library built on top of Async_unix";
149 propagatedBuildInputs = [
150 async_kernel
151 async_unix
152 core
153 core_kernel
154 ppx_jane
155 timezone
156 ];
157 };
158
159 async_rpc_kernel = janePackage {
160 pname = "async_rpc_kernel";
161 hash = "sha256-zSqmRgybvWhS9XiNIqgxUjQU8xc9aXM69ZaBq4+r+HA=";
162 meta.description = "Platform-independent core of Async RPC library";
163 propagatedBuildInputs = [
164 async_kernel
165 protocol_version_header
166 ];
167 };
168
169 async_rpc_websocket = janePackage {
170 pname = "async_rpc_websocket";
171 hash = "sha256-pbgG872Av6rX/CH2sOKgTVR42XpP0xhzdR/Bqoq7bSU=";
172 meta.description = "Library to serve and dispatch Async RPCs over websockets";
173 propagatedBuildInputs = [
174 async_rpc_kernel
175 async_websocket
176 cohttp_async_websocket
177 ];
178 };
179
180 async_sendfile = janePackage {
181 pname = "async_sendfile";
182 hash = "sha256-x2chts7U9hoGW6uvyfpHMkSwCx1JXhHX601Xg92Wk3U=";
183 meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
184 propagatedBuildInputs = [ async_unix ];
185 };
186
187 async_shell = janePackage {
188 pname = "async_shell";
189 hash = "sha256-/wqfuKiQQufs/KhNtBn8C9AzX7GbP8s8cyWGynJ0m1M=";
190 meta.description = "Shell helpers for Async";
191 propagatedBuildInputs = [
192 async
193 shell
194 ];
195 };
196
197 async_smtp = janePackage {
198 pname = "async_smtp";
199 hash = "sha256-RWtbg6Vpp71ock8Duya5j9Y89OUY4wRXh0pDOxM1NT4=";
200 meta.description = "SMTP client and server";
201 propagatedBuildInputs = [
202 async_extra
203 async_inotify
204 async_sendfile
205 async_shell
206 async_ssl
207 email_message
208 resource_cache
209 re2_stable
210 sexp_macro
211 ];
212 };
213
214 async_ssl = janePackage {
215 pname = "async_ssl";
216 hash = "sha256-7obEoeckwydi2wHBkBmX0LynY1QVCb3sQ/U945eteJo=";
217 meta.description = "Async wrappers for SSL";
218 buildInputs = [ dune-configurator ];
219 propagatedBuildInputs = [
220 async
221 ctypes
222 ctypes-foreign
223 openssl
224 ];
225 patches = fetchpatch {
226 url = "https://raw.githubusercontent.com/ocaml/opam-source-archives/main/patches/async_ssl/no-incompatible-pointer-types-017.patch";
227 hash = "sha256-bpfIi97/b1hIwsFzsmhFAZV1w8CdaMxXoi72ScSYMjY=";
228 };
229 };
230
231 async_unix = janePackage {
232 pname = "async_unix";
233 hash = "sha256-fA1e5AnNe/tMTMZ60jtGUofRi4rh+MmVx81kfhfaBaQ=";
234 meta.description = "Monadic concurrency library";
235 propagatedBuildInputs = [
236 async_kernel
237 core_unix
238 cstruct
239 ];
240 };
241
242 async_websocket = janePackage {
243 pname = "async_websocket";
244 hash = "sha256-22N+QO9hpkKHv3n9WkvtmJouxb/nuauv1UXdVV0zOGA=";
245 meta.description = "A library that implements the websocket protocol on top of Async";
246 propagatedBuildInputs = [
247 async
248 cryptokit
249 ];
250 };
251
252 babel = janePackage {
253 pname = "babel";
254 hash = "sha256-mRSlLXtaGj8DcdDZGUZbi16qQxtfb+fXkwxz6AXxN3o=";
255 meta.description = "A library for defining Rpcs that can evolve over time without breaking backward compatibility";
256 propagatedBuildInputs = [
257 async_rpc_kernel
258 core
259 ppx_jane
260 streamable
261 tilde_f
262 ];
263 };
264
265 base = janePackage {
266 pname = "base";
267 version = "0.17.2";
268 hash = "sha256-GMUlo77IKXwsldZYK5uRcmjj2RyaDhdfFo1KRCJl9Dc=";
269 meta.description = "Full standard library replacement for OCaml";
270 buildInputs = [ dune-configurator ];
271 propagatedBuildInputs = [
272 sexplib0
273 ocaml_intrinsics_kernel
274 ];
275 checkInputs = [ alcotest ];
276 };
277
278 base_bigstring = janePackage {
279 pname = "base_bigstring";
280 hash = "sha256-tGDtkVOU10GzNsJ4wZtbqyIMjY5lHM4+rA3+w34TYOE=";
281 meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
282 propagatedBuildInputs = [
283 int_repr
284 ppx_jane
285 ];
286 };
287
288 base_trie = janePackage {
289 pname = "base_trie";
290 hash = "sha256-KuVDLJiEIjbvLCNI51iFLlsMli+hspWMyhrMk5pSL58=";
291 meta.description = "Trie data structure library";
292 propagatedBuildInputs = [
293 base
294 core
295 expect_test_helpers_core
296 ppx_jane
297 ];
298 };
299
300 base_quickcheck = janePackage {
301 pname = "base_quickcheck";
302 hash = "sha256-jDxO+/9Qnntt6ZNX1xvaWvoJ0JpnPqeq8X8nsYpeqsY=";
303 meta.description = "Randomized testing framework, designed for compatibility with Base";
304 propagatedBuildInputs = [
305 ppx_base
306 ppx_fields_conv
307 ppx_let
308 ppx_sexp_value
309 splittable_random
310 ];
311 };
312
313 bidirectional_map = janePackage {
314 pname = "bidirectional_map";
315 hash = "sha256-LnslyNdgQpa9DOAkwb0qq9/NdRvKNocUTIP+Dni6oYc=";
316 meta.description = "A library for bidirectional maps and multimaps";
317 };
318
319 bignum = janePackage {
320 pname = "bignum";
321 hash = "sha256-QhVEZ97n/YUBBXYCshDa5UnZpv0BKK6xRN1kXabY3Es=";
322 propagatedBuildInputs = [
323 core_kernel
324 zarith
325 zarith_stubs_js
326 ];
327 meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
328 };
329
330 bin_prot = janePackage {
331 pname = "bin_prot";
332 hash = "sha256-5QeK8Cdu+YjNE/MLiQps6SSf5bRJ/eYZYsJH7oYSarg=";
333 meta.description = "A binary protocol generator";
334 propagatedBuildInputs = [
335 ppx_compare
336 ppx_custom_printf
337 ppx_fields_conv
338 ppx_optcomp
339 ppx_stable_witness
340 ppx_variants_conv
341 ];
342 postPatch = ''
343 patchShebangs xen/cflags.sh
344 '';
345 };
346
347 bonsai = janePackage {
348 pname = "bonsai";
349 hash = "sha256-rr87o/w/a6NtCrDIIYmk2a5IZ1WJM/qJUeDqTLN1Gr4=";
350 meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
351 buildInputs = [ ppx_pattern_bind ];
352 nativeBuildInputs = [
353 ppx_css
354 js_of_ocaml-compiler
355 ocaml-embed-file
356 ];
357 propagatedBuildInputs = [
358 async
359 async_durable
360 async_extra
361 async_rpc_websocket
362 babel
363 cohttp-async
364 core_bench
365 fuzzy_match
366 incr_dom
367 indentation_buffer
368 js_of_ocaml-ppx
369 ordinal_abbreviation
370 patdiff
371 polling_state_rpc
372 ppx_css
373 ppx_quick_test
374 ppx_typed_fields
375 profunctor
376 sexp_grammar
377 textutils
378 versioned_polling_state_rpc
379 ];
380 };
381
382 capitalization = janePackage {
383 pname = "capitalization";
384 hash = "sha256-wq8SO+SXF+UQhSu+ElVYv9erZ8S54G3SzJd0HX/Vwyk=";
385 meta.description = "Naming conventions for multiple-word identifiers";
386 propagatedBuildInputs = [
387 base
388 ppx_base
389 ];
390 };
391
392 cinaps = janePackage {
393 pname = "cinaps";
394 version = "0.15.1";
395 hash = "sha256-LycruanldSP251uYJjQqIfI76W0UQ6o5i5u8XjszBT0=";
396 meta.description = "Trivial metaprogramming tool";
397 minimalOCamlVersion = "4.04";
398 propagatedBuildInputs = [ re ];
399 # doCheck fails because ppx_base doesn't include ppx_js_style, and this is
400 # needed for the ppx executable to parse `-allow-toplevel-expression` flag.
401 doCheck = false;
402 };
403
404 codicons = janePackage {
405 pname = "codicons";
406 hash = "sha256-S4VrMObA5+SNeL/XsWU6SoSD/0TVvuqHjthUaQCDoRU=";
407 meta.description = "Icons from VS code";
408 propagatedBuildInputs = [
409 core
410 ppx_jane
411 virtual_dom
412 ];
413 };
414
415 cohttp_async_websocket = janePackage {
416 pname = "cohttp_async_websocket";
417 hash = "sha256-0InGCF34LWQes9S4OgbR6w+6cylThYuj1Dj0aQyTnuY=";
418 meta.description = "Websocket library for use with cohttp and async";
419 propagatedBuildInputs = [
420 async_ssl
421 async_websocket
422 cohttp-async
423 ppx_jane
424 uri-sexp
425 ];
426 };
427
428 cohttp_static_handler = janePackage {
429 pname = "cohttp_static_handler";
430 hash = "sha256-RB/sUq1tL8A3m9YhHHx2LFqoExTX187VeZI9MRb1NeA=";
431 meta.description = "A library for easily creating a cohttp handler for static files";
432 propagatedBuildInputs = [ cohttp-async ];
433 };
434
435 content_security_policy = janePackage {
436 pname = "content_security_policy";
437 hash = "sha256-AQN2JJA+5B0PERNNOA9FXX6rIeej40bwJtQmHP6GKw4=";
438 meta.description = "A library for building content-security policies";
439 propagatedBuildInputs = [
440 base64
441 cryptokit
442 core
443 ppx_jane
444 ];
445 };
446
447 core = janePackage {
448 pname = "core";
449 version = "0.17.1";
450 hash = "sha256-XkABcvglVJLVnWJmvfr5eVywyclPSDqanVOLQNqdNtQ=";
451 meta.description = "Industrial strength alternative to OCaml's standard library";
452 buildInputs = [ jst-config ];
453 propagatedBuildInputs = [
454 base
455 base_bigstring
456 base_quickcheck
457 ppx_diff
458 ppx_jane
459 time_now
460 ];
461 };
462
463 core_bench = janePackage {
464 pname = "core_bench";
465 hash = "sha256-oXE3FuCCIbX2M0r4Ds2BMUU6g1bqe9E87lDo2CcMtMU=";
466 meta.description = "Benchmarking library";
467 propagatedBuildInputs = [
468 core_extended
469 delimited_parsing
470 textutils
471 ];
472 };
473
474 core_extended = janePackage {
475 pname = "core_extended";
476 hash = "sha256-Xl6czD1gdnvHkXDz+qa7TWZq6dm8wlDqywxEIi2R6bI=";
477 meta.description = "Extra components that are not as closely vetted or as stable as Core";
478 propagatedBuildInputs = [
479 core_unix
480 record_builder
481 ];
482 };
483
484 core_kernel = janePackage {
485 pname = "core_kernel";
486 hash = "sha256-l7U0edUCNHTroYMBHiEMDx5sl7opEmmmeo2Z06tCMts=";
487 meta.description = "System-independent part of Core";
488 buildInputs = [ jst-config ];
489 propagatedBuildInputs = [
490 base_bigstring
491 core
492 int_repr
493 sexplib
494 uopt
495 ];
496 doCheck = false; # we don't have quickcheck_deprecated
497 };
498
499 core_unix = janePackage {
500 pname = "core_unix";
501 version = "0.17.1";
502 hash = "sha256-xJoBW6TBBnzR5n38E5LHBFYO2CRIsME7OTdEZKn8EqU=";
503 meta.description = "Unix-specific portions of Core";
504 buildInputs = [ jst-config ];
505 propagatedBuildInputs = [
506 core_kernel
507 expect_test_helpers_core
508 ocaml_intrinsics
509 ppx_jane
510 timezone
511 spawn
512 ];
513 postPatch = ''
514 patchShebangs unix_pseudo_terminal/src/discover.sh
515 '';
516 doCheck = false; # command_validate_parsing.exe is not specified in test build deps
517
518 };
519
520 csvfields = janePackage {
521 pname = "csvfields";
522 hash = "sha256-hCH2NGQIRTU5U3TUOYHao6Kz5PhnLbySmzic4ytppEc=";
523 propagatedBuildInputs = [
524 core
525 num
526 ];
527 meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
528 };
529
530 dedent = janePackage {
531 pname = "dedent";
532 hash = "sha256-Scir/gaIhmNowXZ0tv57M/Iv1GXQIkyDks1sU1DAoIQ=";
533 propagatedBuildInputs = [
534 base
535 ppx_jane
536 stdio
537 ];
538 meta.description = "A library for improving redability of multi-line string constants in code";
539 };
540
541 delimited_parsing = janePackage {
542 pname = "delimited_parsing";
543 hash = "sha256-bgt99kQvaU7FPK1+K1UOAUbSaaaCB1DV23Cuo3A68M0=";
544 propagatedBuildInputs = [
545 async
546 core_extended
547 ];
548 meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
549 };
550
551 legacy_diffable = janePackage {
552 pname = "legacy_diffable";
553 hash = "sha256-wUSG04bHCnwqXpWKgkceAORs1inxexiPKZIR9fEVmCo=";
554 propagatedBuildInputs = [
555 core
556 ppx_jane
557 stored_reversed
558 streamable
559 ];
560 meta.description = "An interface for diffs";
561 };
562
563 ecaml = janePackage {
564 pname = "ecaml";
565 hash = "sha256-CEroXMEIAfvXD603bnIVwzcrE3KbVaOOhGZastkQcdU=";
566 meta.description = "Library for writing Emacs plugin in OCaml";
567 propagatedBuildInputs = [
568 async
569 expect_test_helpers_core
570 ];
571 };
572
573 email_message = janePackage {
574 pname = "email_message";
575 hash = "sha256-1OJ6bQb/rdyfAgMyuKT/ylpa8qBldZV5kEm0B45Ej1w=";
576 meta.description = "E-mail message parser";
577 propagatedBuildInputs = [
578 angstrom
579 async
580 base64
581 cryptokit
582 magic-mime
583 re2
584 ];
585 };
586
587 env_config = janePackage {
588 pname = "env_config";
589 hash = "sha256-vG309p7xqanTnrnHBwvuCO3YD4tVbTNa7F1F9sZDZE0=";
590 meta.description = "Helper library for retrieving configuration from an environment variable";
591 propagatedBuildInputs = [
592 async
593 core
594 core_unix
595 ppx_jane
596 ];
597 };
598
599 expect_test_helpers_async = janePackage {
600 pname = "expect_test_helpers_async";
601 hash = "sha256-oInNgNISqOrmQUXVxzjDy+mS06yPEeFPGIvaKnCETjk=";
602 meta.description = "Async helpers for writing expectation tests";
603 propagatedBuildInputs = [
604 async
605 expect_test_helpers_core
606 ];
607 };
608
609 expect_test_helpers_core = janePackage {
610 pname = "expect_test_helpers_core";
611 hash = "sha256-vnlDZ8k3JFCdN6WGiaG9OEEdQJnw0/eMogFCfTXIu2Y=";
612 meta.description = "Helpers for writing expectation tests";
613 propagatedBuildInputs = [
614 core_kernel
615 sexp_pretty
616 ];
617 };
618
619 fieldslib = janePackage {
620 pname = "fieldslib";
621 hash = "sha256-Zfnc32SghjZYTlnSdo6JPm4WCb7BPVjrWNDfeMZHaiU=";
622 meta.description = "Syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
623 propagatedBuildInputs = [ base ];
624 };
625
626 file_path = janePackage {
627 pname = "file_path";
628 hash = "sha256-XSLfYasn6qMZmDzAUGssOM9EX09n2W9/imTgNoSBEyk=";
629 meta.description = "A library for typed manipulation of UNIX-style file paths";
630 propagatedBuildInputs = [
631 async
632 core
633 core_kernel
634 core_unix
635 expect_test_helpers_async
636 expect_test_helpers_core
637 ppx_jane
638 ];
639 };
640
641 fuzzy_match = janePackage {
642 pname = "fuzzy_match";
643 hash = "sha256-XB1U4mY0LcdsKYRnmV0SR4ODTIZynZetBk5X5SdHs44=";
644 meta.description = "A library for fuzzy string matching";
645 propagatedBuildInputs = [
646 core
647 ppx_jane
648 ];
649 };
650
651 fzf = janePackage {
652 pname = "fzf";
653 hash = "sha256-yHdvC3cB5sVXsZQbtNzUZkaaqOe/7y8pDHgLwugAlQg=";
654 meta.description = "A library for running the fzf command line tool";
655 propagatedBuildInputs = [
656 async
657 core_kernel
658 ppx_jane
659 ];
660 postPatch = ''
661 substituteInPlace src/fzf.ml --replace /usr/bin/fzf ${fzf}/bin/fzf
662 '';
663 };
664
665 gel = janePackage {
666 pname = "gel";
667 hash = "sha256-zGDlxbJINXD1qG7EifZGDfKbQpehdHyR/WLRJRYlwUg=";
668 meta.description = "A library to mark non-record fields global";
669 propagatedBuildInputs = [
670 base
671 ppx_jane
672 ];
673 };
674
675 hex_encode = janePackage {
676 pname = "hex_encode";
677 hash = "sha256-5DqaCJllphdEreOpzAjT61qb3M6aN9b2xhiUjHVLrvE=";
678 meta.description = "Hexadecimal encoding library";
679 propagatedBuildInputs = [
680 core
681 ppx_jane
682 ounit
683 ];
684 };
685
686 higher_kinded = janePackage {
687 pname = "higher_kinded";
688 hash = "sha256-6aZxgGzltRs2aS4MYJh23Gpoqcko6xJxU11T6KixXno=";
689 meta.description = "A library with an encoding of higher kinded types in OCaml";
690 propagatedBuildInputs = [
691 base
692 ppx_jane
693 ];
694 };
695
696 incr_dom = janePackage {
697 pname = "incr_dom";
698 hash = "sha256-dkF7+aq5Idw1ltDgGEjGYspdmOXjXqv8AA27b4M7U8A=";
699 meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
700 buildInputs = [ js_of_ocaml-ppx ];
701 propagatedBuildInputs = [
702 async_js
703 incr_map
704 incr_select
705 virtual_dom
706 ];
707 };
708
709 incr_map = janePackage {
710 pname = "incr_map";
711 hash = "sha256-qNahlxe3Pe1EEcFz1bAKUw3vBaNjgDlahQeuj/+VqbI=";
712 meta.description = "Helpers for incremental operations on map like data structures";
713 buildInputs = [ ppx_pattern_bind ];
714 propagatedBuildInputs = [
715 abstract_algebra
716 bignum
717 legacy_diffable
718 incremental
719 streamable
720 ];
721 };
722
723 incr_select = janePackage {
724 pname = "incr_select";
725 hash = "sha256-/VCNiE8Y7LBL0OHd5V+tB/b3HGKhfSvreU6LZgurYAg=";
726 meta.description = "Handling of large set of incremental outputs from a single input";
727 propagatedBuildInputs = [ incremental ];
728 };
729
730 incremental = janePackage {
731 pname = "incremental";
732 hash = "sha256-siBN36Vv0Bktyxh+8tL6XkUGLqSYMxqvd0UWuTRgAnI=";
733 meta.description = "Library for incremental computations";
734 propagatedBuildInputs = [
735 core_kernel
736 lru_cache
737 ];
738 };
739
740 indentation_buffer = janePackage {
741 pname = "indentation_buffer";
742 hash = "sha256-/IUZyRkcxUsddzGGIoaLpXbpCxJ1satK79GkzPxSPSc=";
743 meta.description = "A library for building strings with indentation";
744 propagatedBuildInputs = [
745 core
746 ppx_jane
747 ];
748 };
749
750 int_repr = janePackage {
751 pname = "int_repr";
752 hash = "sha256-yeaAzw95zB1wow9Alg18CU+eemZVxjdLiO/wVRitDwE=";
753 meta.description = "Integers of various widths";
754 propagatedBuildInputs = [
755 base
756 ppx_jane
757 ];
758 };
759
760 janestreet_cpuid = janePackage {
761 pname = "janestreet_cpuid";
762 hash = "sha256-3ZwEZQSkJJyFW5/+C9x8nW6+GrfVwccNFPlcs7qNcjQ=";
763 patches = fetchpatch {
764 url = "https://github.com/janestreet/janestreet_cpuid/commit/55223d9708388fe990553669d881f78a811979b9.patch";
765 hash = "sha256-aggT6GGMkQj4rRkSZK4hoPRzEfpC8z9qnIROptMDf9E=";
766 };
767 meta.description = "A library for parsing CPU capabilities out of the `cpuid` instruction";
768 propagatedBuildInputs = [
769 core
770 core_kernel
771 ppx_jane
772 ];
773 };
774
775 janestreet_csv = janePackage {
776 pname = "janestreet_csv";
777 hash = "sha256-at7ywGDaYIDsqhxxLYJhB8a697ccfPtKKI8LvCmRgG8=";
778 propagatedBuildInputs = [
779 async
780 bignum
781 core_kernel
782 core_unix
783 csvfields
784 delimited_parsing
785 fieldslib
786 numeric_string
787 ppx_jane
788 re2
789 textutils
790 tyxml
791 ocaml_pcre
792 ];
793 meta.description = "Tools for working with CSVs on the command line";
794 };
795
796 jane_rope = janePackage {
797 pname = "jane_rope";
798 hash = "sha256-Lo4+ZUX9R2EGrz4BN+LqdJgVXB3hQqNifgwsjFC1Hfs=";
799 meta.description = "String representation with cheap concatenation";
800 propagatedBuildInputs = [
801 base
802 ppx_jane
803 ];
804 };
805
806 jane-street-headers = janePackage {
807 pname = "jane-street-headers";
808 hash = "sha256-nEa40utpXA3KiFhp9inWurKyDF4Jw1Jlln6fiW5MAkM=";
809 meta.description = "Jane Street C header files";
810 };
811
812 js_of_ocaml_patches = janePackage {
813 pname = "js_of_ocaml_patches";
814 hash = "sha256-N61IEZLGfCU3ZX+sw35DAUqUh3u8RaCFcNlXxU1dvL8=";
815 meta.description = "Additions to js_of_ocaml's standard library that are required by Jane Street libraries";
816 propagatedBuildInputs = [
817 js_of_ocaml
818 js_of_ocaml-ppx
819 ];
820 patches = [ ./js_of_ocaml_patches.patch ];
821 };
822
823 jsonaf = janePackage {
824 pname = "jsonaf";
825 hash = "sha256-MMIDHc40cmPpO0n8yREIGMyFndw3NfvGUhy6vHnn40w=";
826 meta.description = "A library for parsing, manipulating, and serializing data structured as JSON";
827 propagatedBuildInputs = [
828 base
829 ppx_jane
830 angstrom
831 faraday
832 ];
833 };
834
835 jst-config = janePackage {
836 pname = "jst-config";
837 hash = "sha256-xwQ+q2Hsduu2vWMWFcjoj3H8Es00N7Mv9LwIZG4hw7c=";
838 meta.description = "Compile-time configuration for Jane Street libraries";
839 buildInputs = [
840 dune-configurator
841 ppx_assert
842 stdio
843 ];
844 };
845
846 lru_cache = janePackage {
847 pname = "janestreet_lru_cache";
848 hash = "sha256-/UMSccN9yGAXF7/g6ueSnsfPSnF1fm0zJIRFsThZvH8=";
849 meta.description = "An LRU Cache implementation";
850 propagatedBuildInputs = [
851 core_kernel
852 ppx_jane
853 ];
854 };
855
856 man_in_the_middle_debugger = janePackage {
857 pname = "man_in_the_middle_debugger";
858 hash = "sha256-ImEzn/EssgW63vdGhLMp4NB/FW0SsCMQ32ZNAs7bDg4=";
859 meta.description = "Man-in-the-middle debugging library";
860 propagatedBuildInputs = [
861 async
862 core
863 ppx_jane
864 angstrom
865 angstrom-async
866 ];
867 };
868
869 n_ary = janePackage {
870 pname = "n_ary";
871 hash = "sha256-xg4xK3m7SoO1P+rBHvPqFMLx9JXnADEeyU58UmAqW6s=";
872 meta.description = "A library for N-ary datatypes and operations";
873 propagatedBuildInputs = [
874 base
875 expect_test_helpers_core
876 ppx_compare
877 ppx_enumerate
878 ppx_hash
879 ppx_jane
880 ppx_sexp_conv
881 ppx_sexp_message
882 ];
883 };
884
885 numeric_string = janePackage {
886 pname = "numeric_string";
887 hash = "sha256-cU5ETGfavkkiqZOjehCYg06YdDk8W+ZDqz17FGWHey8=";
888 meta.description = "A comparison function for strings that sorts numeric fragments of strings according to their numeric value";
889 propagatedBuildInputs = [
890 base
891 ppx_jane
892 ];
893 };
894
895 ocaml-compiler-libs = janePackage (
896 {
897 pname = "ocaml-compiler-libs";
898 minimalOCamlVersion = "4.04.1";
899 meta.description = "OCaml compiler libraries repackaged";
900 }
901 // (
902 if lib.versionAtLeast ocaml.version "5.2" then
903 {
904 version = "0.17.0";
905 hash = "sha256-QaC6BWrpFblra6X1+TrlK+J3vZxLvLJZ2b0427DiQzM=";
906 }
907 else
908 {
909 version = "0.12.4";
910 hash = "sha256-W+KUguz55yYAriHRMcQy8gRPzh2TZSJnexG1JI8TLgI=";
911 }
912 )
913 );
914
915 ocaml-embed-file = janePackage {
916 pname = "ocaml-embed-file";
917 hash = "sha256-7fyZ5DNcRHud0rd4dLUv9Vyf3lMwMVxgkl9jVUn1/lw=";
918 propagatedBuildInputs = [
919 async
920 ppx_jane
921 ];
922 meta.description = "Files contents as module constants";
923 };
924
925 ocaml_intrinsics_kernel = janePackage {
926 pname = "ocaml_intrinsics_kernel";
927 hash = "sha256-utD9HE0P3vPgSXDW8Bz0FxgEy+lNkIAlN/+JkfDqb9A=";
928 meta.description = "A kernel library of intrinsics for OCaml";
929 buildInputs = [ dune-configurator ];
930 };
931
932 ocaml_intrinsics = janePackage {
933 pname = "ocaml_intrinsics";
934 hash = "sha256-Ndt6ZPJamBYzr1YA941BLwvRgkkbD8AEQR/JjjR38xI=";
935 meta.description = "A library of intrinsics for OCaml";
936 buildInputs = [
937 dune-configurator
938 ];
939 propagatedBuildInputs = [
940 ocaml_intrinsics_kernel
941 ];
942 patches = [
943 # This patch is needed because of an issue with the aarch64 CRC32
944 # intrinsics that was introduced with ocaml_intrinsics v0.17. It should
945 # be removed as soon as
946 # https://github.com/janestreet/ocaml_intrinsics/pull/11 is merged.
947 ./ocaml_intrinsics-fix-aarch64-crc32-intrinsics.patch
948 ];
949 };
950
951 ocaml_openapi_generator = janePackage {
952 pname = "ocaml_openapi_generator";
953 hash = "sha256-HCq9fylcVjBMs8L6E860nw+EonWEQadlyEKpQI6mynU=";
954 meta.description = "OpenAPI 3 to OCaml client generator";
955 buildInputs = [
956 async
957 core
958 core_kernel
959 core_unix
960 jsonaf
961 ppx_jane
962 ppx_jsonaf_conv
963 httpaf
964 jingoo
965 uri
966 ];
967 nativeBuildInputs = [ ocaml-embed-file ];
968 };
969
970 of_json = janePackage {
971 pname = "of_json";
972 hash = "sha256-pZCiwXRwZK6ohsGz/WLacgo48ekdT35uD4VESvGxH8A=";
973 meta.description = "A friendly applicative interface for Jsonaf";
974 buildInputs = [
975 core
976 core_extended
977 jsonaf
978 ppx_jane
979 ];
980 };
981
982 ordinal_abbreviation = janePackage {
983 pname = "ordinal_abbreviation";
984 hash = "sha256-kmTGnGbhdiUoXXw2DEAeZJL2sudEf8BRRt2RHCdL7HU=";
985 meta.description = "A minimal library for generating ordinal names of integers";
986 buildInputs = [
987 base
988 ppx_jane
989 ];
990 };
991
992 parsexp = janePackage {
993 pname = "parsexp";
994 hash = "sha256-iKrZ6XDLM6eRl7obaniDKK6X8R7Kxry6HD7OQBwh3NU=";
995 meta.description = "S-expression parsing library";
996 propagatedBuildInputs = [
997 base
998 sexplib0
999 ];
1000 };
1001
1002 patdiff = janePackage {
1003 pname = "patdiff";
1004 hash = "sha256-iphpQ0b8i+ItY57zM4xL9cID9GYuTCMZN7SYa7TDprI=";
1005
1006 # Used by patdiff-git-wrapper. Providing it here also causes the shebang
1007 # line to be automatically patched.
1008 buildInputs = [ bash ];
1009 propagatedBuildInputs = [
1010 core_unix
1011 patience_diff
1012 ocaml_pcre
1013 ];
1014 meta = {
1015 description = "File Diff using the Patience Diff algorithm";
1016 };
1017 postPatch = ''
1018 patchShebangs test/bin/setup.sh
1019 '';
1020 doCheck = false; # test rules broken
1021 };
1022
1023 patience_diff = janePackage {
1024 pname = "patience_diff";
1025 hash = "sha256-sn/8SvMt7kzzuYUwhB/uH/3mO1aIKHw/oRYRzA7goFU=";
1026 meta.description = "Diff library using Bram Cohen's patience diff algorithm";
1027 propagatedBuildInputs = [ core_kernel ];
1028 };
1029
1030 polling_state_rpc = janePackage {
1031 pname = "polling_state_rpc";
1032 hash = "sha256-fZKGva11ztuM+q0Lc6rr9NEH/Qo+wFmE6Rr1/TJm7rA=";
1033 meta.description = "An RPC which tracks state on the client and server so it only needs to send diffs across the wire";
1034 propagatedBuildInputs = [
1035 async_kernel
1036 async_rpc_kernel
1037 babel
1038 core
1039 core_kernel
1040 legacy_diffable
1041 ppx_jane
1042 ];
1043 };
1044
1045 posixat = janePackage {
1046 pname = "posixat";
1047 hash = "sha256-G+5q8x1jfG3wEwNzX2tkcC2Pm4E5/ZYxQyBwCUNXIrw=";
1048 propagatedBuildInputs = [
1049 ppx_optcomp
1050 ppx_sexp_conv
1051 ];
1052 meta.description = "Binding to the posix *at functions";
1053 };
1054
1055 ppx_accessor = janePackage {
1056 pname = "ppx_accessor";
1057 hash = "sha256-vK6lA0J98bDGtVthIdU76ckzH+rpNUD1cQ3vMzHy0Iw=";
1058 meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
1059 propagatedBuildInputs = [ accessor ];
1060 };
1061
1062 ppx_assert = janePackage {
1063 pname = "ppx_assert";
1064 hash = "sha256-o9ywdFH6+qoJ3eWb29/gGlkWkHDMuBx626mNxrT1D8A=";
1065 meta.description = "Assert-like extension nodes that raise useful errors on failure";
1066 propagatedBuildInputs = [
1067 ppx_cold
1068 ppx_compare
1069 ppx_here
1070 ppx_sexp_conv
1071 ];
1072 };
1073
1074 ppx_base = janePackage {
1075 pname = "ppx_base";
1076 hash = "sha256-/s7c8vfLIO1pPajNldMgurBKXsSzQ8yxqFI6QZCHm5I=";
1077 meta.description = "Base set of ppx rewriters";
1078 propagatedBuildInputs = [
1079 ppx_cold
1080 ppx_enumerate
1081 ppx_globalize
1082 ppx_hash
1083 ];
1084 };
1085
1086 ppx_bench = janePackage {
1087 pname = "ppx_bench";
1088 hash = "sha256-y4nL/wwjJUL2Fa7Ne0f7SR5flCjT1ra9M1uBHOUZWCg=";
1089 meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
1090 propagatedBuildInputs = [ ppx_inline_test ];
1091 };
1092
1093 ppx_bin_prot = janePackage {
1094 pname = "ppx_bin_prot";
1095 hash = "sha256-nQps/+Csx3+6H6KBzIm/dLCGWJ9fcRD7JxB4P2lky0o=";
1096 meta.description = "Generation of bin_prot readers and writers from types";
1097 propagatedBuildInputs = [
1098 bin_prot
1099 ppx_here
1100 ];
1101 doCheck = false; # circular dependency with ppx_jane
1102 };
1103
1104 ppx_cold = janePackage {
1105 pname = "ppx_cold";
1106 hash = "sha256-fFZqlcbUS7D+GjnxSjGYckkQtx6ZcPNtOIsr6Rt6D9A=";
1107 meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
1108 propagatedBuildInputs = [ ppxlib ];
1109 };
1110
1111 ppx_compare = janePackage {
1112 pname = "ppx_compare";
1113 hash = "sha256-uAXB9cba0IBl+cA2CAuGVVxuos4HXH5jlB6Qjxx44Y0=";
1114 meta.description = "Generation of comparison functions from types";
1115 propagatedBuildInputs = [
1116 ppxlib
1117 ppxlib_jane
1118 base
1119 ];
1120 };
1121
1122 ppx_conv_func = janePackage {
1123 pname = "ppx_conv_func";
1124 hash = "sha256-PJ8T0u8VkxefaxojwrmbMXDjqyfAIxKe92B8QqRY2JU=";
1125 meta.description = "Part of the Jane Street's PPX rewriters collection";
1126 propagatedBuildInputs = [
1127 ppxlib
1128 base
1129 ];
1130 };
1131
1132 ppx_custom_printf = janePackage {
1133 pname = "ppx_custom_printf";
1134 hash = "sha256-DFgDb9MIFCqglYoMgPUN0zEaxkr7VJAXgLxq1yp8ap4=";
1135 meta.description = "Printf-style format-strings for user-defined string conversion";
1136 propagatedBuildInputs = [ ppx_sexp_conv ];
1137 };
1138
1139 ppx_css = janePackage {
1140 pname = "ppx_css";
1141 hash = "sha256-mzLMVtNTy9NrVaNgsRa+oQynxXnh2qlHJCfr3FLFJ2I=";
1142 meta.description = "A ppx that takes in css strings and produces a module for accessing the unique names defined within";
1143 propagatedBuildInputs = [
1144 async
1145 async_unix
1146 core_kernel
1147 core_unix
1148 ppxlib
1149 js_of_ocaml
1150 js_of_ocaml-ppx
1151 sedlex
1152 virtual_dom
1153 ];
1154 meta.broken = true; # Not compatible with sedlex > 3.4
1155 };
1156
1157 ppx_csv_conv = janePackage {
1158 pname = "ppx_csv_conv";
1159 hash = "sha256-NtqfagLIYiuyBjEAxilAhATx8acJwD7LykHBzfr+yAc=";
1160 meta.description = "Generate functions to read/write records in csv format";
1161 propagatedBuildInputs = [
1162 csvfields
1163 ppx_conv_func
1164 ];
1165 };
1166
1167 ppx_demo = janePackage {
1168 pname = "ppx_demo";
1169 hash = "sha256-blD96GhicOj3b6jYNniSpq6fBR+ul9Y2kn0ZmfbeVMo=";
1170 meta.description = "PPX that exposes the source code string of an expression/module structure";
1171 propagatedBuildInputs = [
1172 core
1173 dedent
1174 ppx_jane
1175 ppxlib
1176 ];
1177 };
1178
1179 ppx_derive_at_runtime = janePackage {
1180 pname = "ppx_derive_at_runtime";
1181 hash = "sha256-Y/z4BKFRt3z1lUGdc7SznIv/ys//dZHoPSnsouj1GtI=";
1182 meta.description = "Define a new ppx deriver by naming a runtime module";
1183 propagatedBuildInputs = [
1184 base
1185 expect_test_helpers_core
1186 ppx_jane
1187 ppxlib
1188 ];
1189 };
1190
1191 ppx_diff = janePackage {
1192 pname = "ppx_diff";
1193 hash = "sha256-MAn+vcU6vLR8g16Wq1sORyLcLgWxLsazMQY1syY6HsA=";
1194 meta.description = "Generation of diffs and update functions for ocaml types";
1195 propagatedBuildInputs = [
1196 base
1197 gel
1198 ppx_compare
1199 ppx_enumerate
1200 ppx_jane
1201 ];
1202 };
1203
1204 ppx_disable_unused_warnings = janePackage {
1205 pname = "ppx_disable_unused_warnings";
1206 hash = "sha256-KHWIufXU+k6xCLf8l50Pp/1JZ2wFrKnKT/aQYpadlmU=";
1207 meta.description = ''Expands [@disable_unused_warnings] into [@warning "-20-26-32-33-34-35-36-37-38-39-60-66-67"]'';
1208 propagatedBuildInputs = [ ppxlib ];
1209 };
1210
1211 ppx_embed_file = janePackage {
1212 pname = "ppx_embed_file";
1213 hash = "sha256-Ew6/X7oAq81ldERU37QWXQdgReEtPD/lxbku8WZNJ6A=";
1214 meta.description = "A PPX that allows embedding files directly into executables/libraries as strings or bytes";
1215 propagatedBuildInputs = [
1216 core
1217 ppx_jane
1218 shell
1219 ppxlib
1220 ];
1221 };
1222
1223 ppx_enumerate = janePackage {
1224 pname = "ppx_enumerate";
1225 hash = "sha256-YqBrxp2fe91k8L3aQVW6egoDPj8onGSRueQkE2Icdu4=";
1226 meta.description = "Generate a list containing all values of a finite type";
1227 propagatedBuildInputs = [
1228 ppxlib
1229 ppxlib_jane
1230 ];
1231 };
1232
1233 ppx_expect = janePackage {
1234 pname = "ppx_expect";
1235 version = "0.17.2";
1236 hash = "sha256-na9n/+shkiHIIUQ2ZitybQ6NNsSS9gWFNAFxij+JNVo=";
1237 meta.description = "Cram like framework for OCaml";
1238 propagatedBuildInputs = [
1239 ppx_here
1240 ppx_inline_test
1241 re
1242 ];
1243 doCheck = false; # test build rules broken
1244 };
1245
1246 ppx_fields_conv = janePackage {
1247 pname = "ppx_fields_conv";
1248 hash = "sha256-FA7hDgqJMJ2obsVwzwaGnNLPvjP0SkTec8Nh3znuNDQ=";
1249 meta.description = "Generation of accessor and iteration functions for ocaml records";
1250 propagatedBuildInputs = [
1251 fieldslib
1252 ppxlib
1253 ];
1254 };
1255
1256 ppx_fixed_literal = janePackage {
1257 pname = "ppx_fixed_literal";
1258 hash = "sha256-Xq+btvZQ/+6bcHoH9DcrrhD5CkwpFeedn7YEFHeLzsU=";
1259 meta.description = "Simpler notation for fixed point literals";
1260 propagatedBuildInputs = [ ppxlib ];
1261 };
1262
1263 ppx_globalize = janePackage {
1264 pname = "ppx_globalize";
1265 hash = "sha256-LKV5zfaf6AXn3NzOhN2ka8NtjItPTIsfmoJVBw5bYi8=";
1266 meta.description = "A ppx rewriter that generates functions to copy local values to the global heap";
1267 propagatedBuildInputs = [
1268 base
1269 ppxlib
1270 ppxlib_jane
1271 ];
1272 };
1273
1274 ppx_hash = janePackage {
1275 pname = "ppx_hash";
1276 hash = "sha256-GADCLoF2GjZkvAiezn0xyReCs1avrUgjJGSS/pMNq38=";
1277 meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
1278 propagatedBuildInputs = [
1279 ppx_compare
1280 ppx_sexp_conv
1281 ];
1282 };
1283
1284 ppx_here = janePackage {
1285 pname = "ppx_here";
1286 hash = "sha256-ybwOcv82uDRPTlfaQgaBJHVq6xBxIRUj07CXP131JsM=";
1287 meta.description = "Expands [%here] into its location";
1288 propagatedBuildInputs = [ ppxlib ];
1289 doCheck = false; # test build rules broken
1290 };
1291
1292 ppx_ignore_instrumentation = janePackage {
1293 pname = "ppx_ignore_instrumentation";
1294 hash = "sha256-73dp8XKfsLO0Z6A1p5/K7FjxgeUPMBkScx0IjfbOV+w=";
1295 meta.description = "Ignore Jane Street specific instrumentation extensions";
1296 propagatedBuildInputs = [ ppxlib ];
1297 };
1298
1299 ppx_inline_test = janePackage {
1300 pname = "ppx_inline_test";
1301 hash = "sha256-pNdrmAlT3MUbuPUcMmCRcUIXv4fZ/o/IofJmnUKf8Cs=";
1302 meta.description = "Syntax extension for writing in-line tests in ocaml code";
1303 propagatedBuildInputs = [
1304 ppxlib
1305 time_now
1306 ];
1307 doCheck = false; # test build rules broken
1308 };
1309
1310 ppx_jane = janePackage {
1311 pname = "ppx_jane";
1312 hash = "sha256-HgIob7iJkV0HcGi6IjjSUWdKOAu2TsC3GMyzpjYS1cs=";
1313 meta.description = "Standard Jane Street ppx rewriters";
1314 propagatedBuildInputs = [
1315 base_quickcheck
1316 ppx_bin_prot
1317 ppx_disable_unused_warnings
1318 ppx_expect
1319 ppx_fixed_literal
1320 ppx_ignore_instrumentation
1321 ppx_log
1322 ppx_module_timer
1323 ppx_optcomp
1324 ppx_optional
1325 ppx_pipebang
1326 ppx_stable
1327 ppx_string
1328 ppx_string_conv
1329 ppx_tydi
1330 ppx_typerep_conv
1331 ppx_variants_conv
1332 ];
1333 };
1334
1335 ppx_jsonaf_conv = janePackage {
1336 pname = "ppx_jsonaf_conv";
1337 hash = "sha256-v7CYOJ1g4LkqIv5De5tQjjkBWXqKHbvqfSr0X5jBUuM=";
1338 meta.description = "[@@deriving] plugin to generate Jsonaf conversion functions";
1339 propagatedBuildInputs = [
1340 base
1341 jsonaf
1342 ppx_jane
1343 ppxlib
1344 ];
1345 };
1346
1347 ppx_js_style = janePackage {
1348 pname = "ppx_js_style";
1349 hash = "sha256-7jRzxe4bLyZ2vnHeqWiLlCUvOlNUAk0dwCfBFhrykUU=";
1350 meta.description = "Code style checker for Jane Street Packages";
1351 propagatedBuildInputs = [
1352 octavius
1353 ppxlib
1354 ];
1355 };
1356
1357 ppx_let = janePackage {
1358 pname = "ppx_let";
1359 hash = "sha256-JkNQgbPHVDH659m4Xy9ipcZ/iqGtj5q1qQn1P+O7TUY=";
1360 meta.description = "Monadic let-bindings";
1361 propagatedBuildInputs = [
1362 ppxlib
1363 ppx_here
1364 ];
1365 };
1366
1367 ppx_log = janePackage {
1368 pname = "ppx_log";
1369 hash = "sha256-llnjWeJH4eg5WtegILRxdwO3RWGWTFeCIKr6EbrUDI4=";
1370 meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
1371 propagatedBuildInputs = [
1372 base
1373 ppx_compare
1374 ppx_enumerate
1375 ppx_expect
1376 ppx_fields_conv
1377 ppx_here
1378 ppx_let
1379 ppx_sexp_conv
1380 ppx_sexp_message
1381 ppx_sexp_value
1382 ppx_string
1383 ppx_variants_conv
1384 sexplib
1385 ];
1386 doCheck = false; # test build rules broken
1387 };
1388
1389 ppx_module_timer = janePackage {
1390 pname = "ppx_module_timer";
1391 hash = "sha256-OWo1Ij9JAxsk9HlTlaz9Qw2+4YCvXDmIvytAOgFCLPI=";
1392 meta.description = "Ppx rewriter that records top-level module startup times";
1393 propagatedBuildInputs = [ time_now ];
1394 };
1395
1396 ppx_optcomp = janePackage {
1397 pname = "ppx_optcomp";
1398 hash = "sha256-H9oTzhJx9IGRkcwY2YEvcvNgeJ8ETNO95qKcjTXJBwk=";
1399 meta.description = "Optional compilation for OCaml";
1400 propagatedBuildInputs = [ ppxlib ];
1401 };
1402
1403 ppx_optional = janePackage {
1404 pname = "ppx_optional";
1405 hash = "sha256-SHw2zh6lG1N9zWF2b3VWeYzRHUx4jUxyOYgHd2/N9wE=";
1406 meta.description = "Pattern matching on flat options";
1407 propagatedBuildInputs = [
1408 ppxlib
1409 ppxlib_jane
1410 ];
1411 };
1412
1413 ppx_pattern_bind = janePackage {
1414 pname = "ppx_pattern_bind";
1415 hash = "sha256-IVDvFU9ERB2YFJOgP/glYcO4KhEH5VdQ7wCCfreboqA=";
1416 meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
1417 propagatedBuildInputs = [ ppx_let ];
1418 };
1419
1420 ppx_pipebang = janePackage {
1421 pname = "ppx_pipebang";
1422 hash = "sha256-GBa1zzNChZOQfVSHyUeDEMFxuNUT3lj/pIQi/l1J35M=";
1423 meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
1424 propagatedBuildInputs = [ ppxlib ];
1425 };
1426
1427 ppx_python = janePackage {
1428 pname = "ppx_python";
1429 hash = "sha256-WqTYH5Zz/vRak/CL1ha8oUbQ8+XRuUu9610uj8II74o=";
1430 meta.description = "A [@@deriving] plugin to generate Python conversion functions ";
1431 propagatedBuildInputs = [
1432 ppx_base
1433 ppxlib
1434 pyml
1435 ];
1436 doCheck = false; # test rules broken
1437 };
1438
1439 ppx_quick_test = janePackage {
1440 pname = "ppx_quick_test";
1441 hash = "sha256-Kxb0IJcosC4eYlUjEfZE9FhY8o1/gDHHLWD5Cby5hXY=";
1442 meta.description = "Spiritual equivalent of let%expect_test, but for property based tests";
1443 propagatedBuildInputs = [
1444 async
1445 async_kernel
1446 base
1447 base_quickcheck
1448 core
1449 core_kernel
1450 expect_test_helpers_core
1451 ppx_expect
1452 ppx_here
1453 ppx_jane
1454 ppx_sexp_conv
1455 ppx_sexp_message
1456 ];
1457 };
1458
1459 ppx_sexp_conv = janePackage {
1460 pname = "ppx_sexp_conv";
1461 hash = "sha256-hUi0I50SODK1MpL86xy8eM8yn8f4q1Hv4LP9zFnnr70=";
1462 meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
1463 propagatedBuildInputs = [
1464 ppxlib
1465 ppxlib_jane
1466 sexplib0
1467 base
1468 ];
1469 };
1470
1471 ppx_sexp_message = janePackage {
1472 pname = "ppx_sexp_message";
1473 hash = "sha256-SNgTvsTUgFzjqHpyIYk4YuA4c5MbA9e77YUEsDaKTeA=";
1474 meta.description = "A ppx rewriter for easy construction of s-expressions";
1475 propagatedBuildInputs = [
1476 ppx_here
1477 ppx_sexp_conv
1478 ];
1479 };
1480
1481 ppx_sexp_value = janePackage {
1482 pname = "ppx_sexp_value";
1483 hash = "sha256-f96DLNFI+s3TKsOj01i6xUoM9L+qRgAXbbepNis397I=";
1484 meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
1485 propagatedBuildInputs = [
1486 ppx_here
1487 ppx_sexp_conv
1488 ];
1489 };
1490
1491 ppx_stable = janePackage {
1492 pname = "ppx_stable";
1493 hash = "sha256-N5oPjjQcLgiO9liX8Z0vg0IbQXaGZ4BqOgwvuIKSKaA=";
1494 meta.description = "Stable types conversions generator";
1495 propagatedBuildInputs = [ ppxlib ];
1496 };
1497
1498 ppx_stable_witness = janePackage {
1499 pname = "ppx_stable_witness";
1500 hash = "sha256-k45uR/OMPRsi5450CuUo592EVc82DPhO8TvBPjgJTh0=";
1501 meta.description = "Ppx extension for deriving a witness that a type is intended to be stable";
1502 propagatedBuildInputs = [
1503 base
1504 ppxlib
1505 ];
1506 };
1507
1508 ppx_string = janePackage {
1509 pname = "ppx_string";
1510 hash = "sha256-taAvJas9DvR5CIiFf38IMdNqLJ0QJmnIdcNJAaVILgA=";
1511 meta.description = "Ppx extension for string interpolation";
1512 propagatedBuildInputs = [
1513 ppx_base
1514 ppxlib
1515 stdio
1516 ];
1517 };
1518
1519 ppx_string_conv = janePackage {
1520 pname = "ppx_string_conv";
1521 hash = "sha256-r+XubSXjxVyCsra99D6keJ/lmXeK5SZbI6h/IFghvPQ=";
1522 meta.description = "Ppx to help derive of_string and to_string, primarily for variant types";
1523 propagatedBuildInputs = [
1524 capitalization
1525 ppx_let
1526 ppx_string
1527 ];
1528 };
1529
1530 ppx_tydi = janePackage {
1531 pname = "ppx_tydi";
1532 hash = "sha256-PM89fP6Rb6M99HgEzQ7LfpW1W5adw6J/E1LFQJtdd0U=";
1533 meta.description = "Let expressions, inferring pattern type from expression";
1534 propagatedBuildInputs = [
1535 base
1536 ppxlib
1537 ];
1538 };
1539
1540 ppx_typed_fields = janePackage {
1541 pname = "ppx_typed_fields";
1542 hash = "sha256-aTPEBBc1zniZkEmzubGkU064bwGnefBOjVDqTdPm2w8=";
1543 meta.description = "GADT-based field accessors and utilities";
1544 propagatedBuildInputs = [
1545 core
1546 ppx_jane
1547 ppxlib
1548 ];
1549 };
1550
1551 ppx_typerep_conv = janePackage {
1552 pname = "ppx_typerep_conv";
1553 hash = "sha256-V9yOSy3cj5/bz9PvpO3J+aeFu1G+qGQ8AR3gSczUZbY=";
1554 meta.description = "Generation of runtime types from type declarations";
1555 propagatedBuildInputs = [
1556 ppxlib
1557 typerep
1558 ];
1559 };
1560
1561 ppx_variants_conv = janePackage {
1562 pname = "ppx_variants_conv";
1563 hash = "sha256-Av2F699LzVCpwcdji6qG0jt5DVxCnIY4eBLaPK1JC10=";
1564 meta.description = "Generation of accessor and iteration functions for ocaml variant types";
1565 propagatedBuildInputs = [
1566 variantslib
1567 ppxlib
1568 ];
1569 };
1570
1571 ppxlib_jane = janePackage (
1572 {
1573 pname = "ppxlib_jane";
1574 meta.description = "A library for use in ppxes for constructing and matching on ASTs corresponding to the augmented parsetree";
1575 propagatedBuildInputs = [ ppxlib ];
1576 }
1577 // (
1578 if lib.versionAtLeast ocaml.version "5.3" then
1579 {
1580 version = "0.17.2";
1581 hash = "sha256-AQJSdKtF6p/aG5Lx8VHVEOsisH8ep+iiml6DtW+Hdik=";
1582 }
1583 else
1584 {
1585 version = "0.17.0";
1586 hash = "sha256-8NC8CHh3pSdFuRDQCuuhc2xxU+84UAsGFJbbJoKwd0U=";
1587 }
1588 )
1589 );
1590
1591 profunctor = janePackage {
1592 pname = "profunctor";
1593 hash = "sha256-WYPJLt3kYvIzh88XcPpw2xvSNjNX63/LvWwIDK+Xr0Q=";
1594 meta.description = "A library providing a signature for simple profunctors and traversal of a record";
1595 propagatedBuildInputs = [
1596 base
1597 ppx_jane
1598 record_builder
1599 ];
1600 };
1601
1602 protocol_version_header = janePackage {
1603 pname = "protocol_version_header";
1604 hash = "sha256-WKy4vahmmj6o82/FbzvFYfJFglgNMrka0XhtCMUyct4=";
1605 meta.description = "Protocol versioning";
1606 propagatedBuildInputs = [ core_kernel ];
1607 };
1608
1609 re2 = janePackage {
1610 pname = "re2";
1611 hash = "sha256-0VCSOzrVouMRVZJumcqv0F+HQFXlFfVEFIhYq7Tfhrg=";
1612 meta.description = "OCaml bindings for RE2, Google's regular expression library";
1613 propagatedBuildInputs = [
1614 core_kernel
1615 jane_rope
1616 regex_parser_intf
1617 ];
1618 prePatch = ''
1619 substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
1620 substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
1621 '';
1622 };
1623
1624 re2_stable = janePackage {
1625 pname = "re2_stable";
1626 version = "0.14.0";
1627 hash = "sha256-gyet2Pzn7ZIqQ+UP2J51pRmwaESY2LSGTqCMZZwDTE4=";
1628 meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
1629 propagatedBuildInputs = [
1630 core
1631 re2
1632 ];
1633 };
1634
1635 record_builder = janePackage {
1636 pname = "record_builder";
1637 hash = "sha256-NQ0Wizxi/wD8BCwt8hxZWnEpLBTn3XkaG+96ooOKIFE=";
1638 meta.description = "A library which provides traversal of records with an applicative";
1639 propagatedBuildInputs = [
1640 base
1641 ppx_jane
1642 ];
1643 };
1644
1645 redis-async = janePackage {
1646 pname = "redis-async";
1647 hash = "sha256-bwKPEnK2uJq5H65BDAL1Vk3qSr5kUwaCEiFsgaCdHw8=";
1648 meta.description = "Redis client for Async applications";
1649 propagatedBuildInputs = [
1650 async
1651 bignum
1652 core
1653 core_kernel
1654 ppx_jane
1655 ];
1656 };
1657
1658 regex_parser_intf = janePackage {
1659 pname = "regex_parser_intf";
1660 hash = "sha256-j6zWJf5c5qWphMqb9JpEAMGDDsrzV+NU2zrGmZHSAgk=";
1661 meta.description = "Interface shared by Re_parser and Re2.Parser";
1662 propagatedBuildInputs = [ base ];
1663 };
1664
1665 resource_cache = janePackage {
1666 pname = "resource_cache";
1667 hash = "sha256-1WEjvdnl47rjCCMvGxqDKAb2ny6pJDlvDfZhKp+40Jg=";
1668 meta.description = "General resource cache";
1669 propagatedBuildInputs = [ async_rpc_kernel ];
1670 };
1671
1672 semantic_version = janePackage {
1673 pname = "semantic_version";
1674 hash = "sha256-2Z2C+1bfI6W7Pw7SRYw8EkaVVwQkkm+knCrJIfsJhPE=";
1675 meta.description = "Semantic versioning";
1676 propagatedBuildInputs = [
1677 core
1678 ppx_jane
1679 re
1680 ];
1681 };
1682
1683 sexp = janePackage {
1684 pname = "sexp";
1685 hash = "sha256-89SNb0MeJbetRRbA5qbBQPXIcLQ0QCeSf8p9v5yUTP0=";
1686 propagatedBuildInputs = [
1687 async
1688 core
1689 csvfields
1690 jsonaf
1691 re2
1692 sexp_diff
1693 sexp_macro
1694 sexp_pretty
1695 sexp_select
1696 shell
1697 ];
1698 meta.description = "S-expression swiss knife";
1699 };
1700
1701 sexp_grammar = janePackage {
1702 pname = "sexp_grammar";
1703 hash = "sha256-yagp8bEZvc4joV81w56hAb17mUbnekuzECVcwLIvYoE=";
1704 propagatedBuildInputs = [
1705 core
1706 ppx_bin_prot
1707 ppx_compare
1708 ppx_hash
1709 ppx_let
1710 ppx_sexp_conv
1711 ppx_sexp_message
1712 zarith
1713 ];
1714 meta.description = "Helpers for manipulating [Sexplib.Sexp_grammar] values";
1715 };
1716
1717 sexp_diff = janePackage {
1718 pname = "sexp_diff";
1719 hash = "sha256-0p1+jMa2b/GJu+JtN+XUuR04lFQchxMeu9ikfgErqMU=";
1720 propagatedBuildInputs = [ core_kernel ];
1721 meta.description = "Code for computing the diff of two sexps";
1722 };
1723
1724 sexp_macro = janePackage {
1725 pname = "sexp_macro";
1726 hash = "sha256-KXJ+6uR38ywkr8uT8n2bWk10W7vW2ntMgxgF4ZvzzWU=";
1727 propagatedBuildInputs = [
1728 async
1729 sexplib
1730 ];
1731 meta.description = "Sexp macros";
1732 };
1733
1734 sexp_pretty = janePackage {
1735 pname = "sexp_pretty";
1736 hash = "sha256-DcgLlwp3AMC1QzFYPzi7aHA+VhnhbG6p/fLDTMx8ATc=";
1737 meta.description = "S-expression pretty-printer";
1738 propagatedBuildInputs = [
1739 ppx_base
1740 re
1741 sexplib
1742 ];
1743 };
1744
1745 sexp_select = janePackage {
1746 pname = "sexp_select";
1747 hash = "sha256-3AUFRtNe32TEB7lItcu7XlEv+3k+4QTitcTnT0kg28Y=";
1748 propagatedBuildInputs = [
1749 base
1750 core_kernel
1751 ppx_jane
1752 ];
1753 meta.description = "A library to use CSS-style selectors to traverse sexp trees";
1754 };
1755
1756 sexplib0 = janePackage {
1757 pname = "sexplib0";
1758 hash = "sha256-Q53wEhRet/Ou9Kr0TZNTyXT5ASQpsVLPz5n/I+Fhy+g=";
1759 minimalOCamlVersion = "4.14.0";
1760 meta.description = "Library containing the definition of S-expressions and some base converters";
1761 };
1762
1763 sexplib = janePackage {
1764 pname = "sexplib";
1765 hash = "sha256-DxTMAQbskZ87pMVQnxYc3opGGCzmUKGCZfszr/Z9TGA=";
1766 meta.description = "Library for serializing OCaml values to and from S-expressions";
1767 propagatedBuildInputs = [
1768 num
1769 parsexp
1770 ];
1771 };
1772
1773 shell = janePackage {
1774 pname = "shell";
1775 hash = "sha256-MJerTFLGrUaR3y3mnKVrH5EQHYBXZyuVL+n2wJZ9HoU=";
1776 meta.description = "Yet another implementation of fork&exec and related functionality";
1777 buildInputs = [ jst-config ];
1778 propagatedBuildInputs = [ textutils ];
1779 checkInputs = [ ounit ];
1780 };
1781
1782 shexp = janePackage {
1783 pname = "shexp";
1784 hash = "sha256-tf9HqZ01gMWxfcpe3Pl3rdPTPgIEdb59iwzwThznqAc=";
1785 propagatedBuildInputs = [
1786 posixat
1787 spawn
1788 ];
1789 meta.description = "Process library and s-expression based shell";
1790 };
1791
1792 spawn = janePackage {
1793 pname = "spawn";
1794 minimalOCamlVersion = "4.05";
1795 version = "0.15.1";
1796 hash = "sha256-6vAkRjTZQGiPhYBWX4MBO3GxEDmAE+18vpMWXMcvWJk=";
1797 meta.description = "Spawning sub-processes";
1798 buildInputs = [ ppx_expect ];
1799 };
1800
1801 splay_tree = janePackage {
1802 pname = "splay_tree";
1803 hash = "sha256-gRHRqUKjFEgkL1h8zSbqJkf+gHxhh61AtAT+mkPcz+k=";
1804 meta.description = "A splay tree implementation";
1805 propagatedBuildInputs = [ core_kernel ];
1806 };
1807
1808 splittable_random = janePackage {
1809 pname = "splittable_random";
1810 hash = "sha256-LlaCxL17GBZc33spn/JnunpaMQ47n+RXS8CShBlaRWA=";
1811 meta.description = "PRNG that can be split into independent streams";
1812 propagatedBuildInputs = [
1813 base
1814 ppx_assert
1815 ppx_bench
1816 ppx_sexp_message
1817 ];
1818 };
1819
1820 stdio = janePackage {
1821 pname = "stdio";
1822 hash = "sha256-N4VMUq6zWdYiJarVECSadxnoXJKh6AsIIaChmHFSbdA=";
1823 meta.description = "Standard IO library for OCaml";
1824 propagatedBuildInputs = [ base ];
1825 };
1826
1827 stored_reversed = janePackage {
1828 pname = "stored_reversed";
1829 hash = "sha256-FPyQxXaGAzFWW6GiiqKQgU+6/lAZhEQwhNnXsmqKkzg=";
1830 meta.description = "A library for representing a list temporarily stored in reverse order";
1831 propagatedBuildInputs = [
1832 core
1833 ppx_jane
1834 ];
1835 };
1836
1837 streamable = janePackage {
1838 pname = "streamable";
1839 hash = "sha256-FtrAX4nsacCO5HTVxwLgwwT8R2sASJ05qu4gT2ZVSDg=";
1840 meta.description = "A collection of types suitable for incremental serialization";
1841 propagatedBuildInputs = [
1842 async_kernel
1843 async_rpc_kernel
1844 base
1845 core
1846 core_kernel
1847 ppx_jane
1848 ppxlib
1849 ];
1850 };
1851
1852 textutils = janePackage {
1853 pname = "textutils";
1854 hash = "sha256-J58sqp9fkx3JyjnH6oJLCyEC0ZvnuDfqLVl+dt3tEgA=";
1855 meta.description = "Text output utilities";
1856 propagatedBuildInputs = [
1857 core_unix
1858 textutils_kernel
1859 ];
1860 };
1861
1862 textutils_kernel = janePackage {
1863 pname = "textutils_kernel";
1864 hash = "sha256-B5ExbKMRSw4RVJ908FVGob2soHFnJ6Ajsdn0q8lDhio=";
1865 meta.description = "Text output utilities";
1866 propagatedBuildInputs = [
1867 core
1868 ppx_jane
1869 uutf
1870 ];
1871 };
1872
1873 tilde_f = janePackage {
1874 pname = "tilde_f";
1875 hash = "sha256-tuddvOmhk0fikB4dHNdXamBx6xfo4DCvivs44QXp5RQ=";
1876 meta.description = "Provides a let-syntax for continuation-passing style";
1877 propagatedBuildInputs = [
1878 base
1879 ppx_jane
1880 ];
1881 };
1882
1883 time_now = janePackage {
1884 pname = "time_now";
1885 hash = "sha256-bTPWE9+x+zmdLdzLc1naDlRErPZ8m4WXDJL2iLErdqk=";
1886 meta.description = "Reports the current time";
1887 buildInputs = [
1888 jst-config
1889 ppx_optcomp
1890 ];
1891 propagatedBuildInputs = [
1892 jane-street-headers
1893 base
1894 ppx_base
1895 ];
1896 };
1897
1898 timezone = janePackage {
1899 pname = "timezone";
1900 hash = "sha256-/6OLWMrkyQSVTNJ24zRy6v4DObt9q99s75QRS/VVxXE=";
1901 meta.description = "Time-zone handling";
1902 propagatedBuildInputs = [ core_kernel ];
1903 };
1904
1905 topological_sort = janePackage {
1906 pname = "topological_sort";
1907 hash = "sha256-jLkJnh5lasrphI6BUKv7oVPrKyGqNm6VIGYthNs04iU=";
1908 meta.description = "Topological sort algorithm";
1909 propagatedBuildInputs = [
1910 ppx_jane
1911 stdio
1912 ];
1913 };
1914
1915 typerep = janePackage {
1916 pname = "typerep";
1917 version = "0.17.1";
1918 hash = "sha256-hw03erwLx9IAbkBibyhZxofA5jIi12rFJOHNEVYpLSk=";
1919 meta.description = "Typerep is a library for runtime types";
1920 propagatedBuildInputs = [ base ];
1921 };
1922
1923 uopt = janePackage {
1924 pname = "uopt";
1925 hash = "sha256-t0SFJVF0ScyFFwziBZOYCOsmhRd6J5H3s0Kk9NKorcM=";
1926 meta.description = "An [option]-like type that incurs no allocation";
1927 propagatedBuildInputs = [
1928 base
1929 ppx_jane
1930 ];
1931 };
1932
1933 username_kernel = janePackage {
1934 pname = "username_kernel";
1935 hash = "sha256-1lxWSv7CbmucurNw8ws18N9DYqo4ik2KZBc5GtNmmeU=";
1936 meta.description = "An identifier for a user";
1937 propagatedBuildInputs = [
1938 core
1939 ppx_jane
1940 ];
1941 };
1942
1943 variantslib = janePackage {
1944 pname = "variantslib";
1945 hash = "sha256-v/p718POQlFsB7N7WmMCDnmQDB2sP1263pSQIuvlLt8=";
1946 meta.description = "Part of Jane Street's Core library";
1947 propagatedBuildInputs = [ base ];
1948 };
1949
1950 vcaml = janePackage {
1951 pname = "vcaml";
1952 hash = "sha256-z3v0Uqb+jE19+EN/b6qQvAx+FaK5HmbdHnxEkYGSmS8=";
1953 meta.description = "OCaml bindings for the Neovim API";
1954 propagatedBuildInputs = [
1955 angstrom-async
1956 async_extra
1957 base_trie
1958 expect_test_helpers_async
1959 faraday
1960 jsonaf
1961 man_in_the_middle_debugger
1962 semantic_version
1963 ];
1964 doCheck = false; # tests depend on nvim
1965 };
1966
1967 versioned_polling_state_rpc = janePackage {
1968 pname = "versioned_polling_state_rpc";
1969 hash = "sha256-Ba+Pevc/cvvY9FnQ2oTUxTekxypVkEy4MfrpRKmJhZ0=";
1970 meta.description = "Helper functions for creating stable/versioned `Polling_state_rpc.t`s with babel";
1971 propagatedBuildInputs = [
1972 async_rpc_kernel
1973 babel
1974 core
1975 polling_state_rpc
1976 ppx_jane
1977 ];
1978 };
1979
1980 virtual_dom = janePackage {
1981 pname = "virtual_dom";
1982 hash = "sha256-5T+/N1fELa1cR9mhWLUgS3Fwr1OQXJ3J6T3YaHT9q7U=";
1983 meta.description = "OCaml bindings for the virtual-dom library";
1984 meta.broken = lib.versionAtLeast ocaml.version "5.3";
1985 buildInputs = [ js_of_ocaml-ppx ];
1986 propagatedBuildInputs = [
1987 base64
1988 core_kernel
1989 gen_js_api
1990 js_of_ocaml
1991 js_of_ocaml_patches
1992 lambdasoup
1993 tyxml
1994 uri
1995 ];
1996 };
1997
1998 virtual_dom_toplayer = janePackage {
1999 pname = "virtual_dom_toplayer";
2000 hash = "sha256-trTSWzWsXkV4RtQvVCyXqJN5/wftaFuooaehNekP9H0=";
2001 meta.description = "OCaml bindings for the floating positioning library for 'toplevel' virtual dom components";
2002 propagatedBuildInputs = [
2003 core
2004 js_of_ocaml_patches
2005 ppx_css
2006 ppx_jane
2007 virtual_dom
2008 gen_js_api
2009 js_of_ocaml
2010 js_of_ocaml-ppx
2011 ];
2012 };
2013
2014 zarith_stubs_js = janePackage {
2015 pname = "zarith_stubs_js";
2016 hash = "sha256-QNhs9rHZetwgKAOftgQQa6aU8cOux8JOe3dBRrLJVh0=";
2017 meta.description = "Javascripts stubs for the Zarith library";
2018 propagatedBuildInputs = [ ppx_jane ];
2019 doCheck = false; # some test sources unavailable
2020 };
2021
2022 zstandard = janePackage {
2023 pname = "zstandard";
2024 hash = "sha256-EUI7fnN8ZaM1l0RBsgSAMWO+VXA8VoCv/lO5kcj+j4E=";
2025 meta.description = "OCaml bindings to Zstandard";
2026 buildInputs = [ ppx_jane ];
2027 propagatedBuildInputs = [
2028 core_kernel
2029 ctypes
2030 zstd
2031 ];
2032 };
2033}