biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / ocaml-modules / janestreet / 0.16.nix
blob35d2895f679f6e3402de6f3465db984098c235a1
1 { self
2 , bash
3 , fetchpatch
4 , fzf
5 , lib
6 , openssl
7 , zstd
8 , krb5
9 }:
11 with self;
15   abstract_algebra = janePackage {
16     pname = "abstract_algebra";
17     hash = "sha256-hAZzc2ypbGE/8mxxk4GZqr17JlIYv71gZJMQ4plsK38=";
18     meta.description = "A small library describing abstract algebra concepts";
19     propagatedBuildInputs = [ base ppx_jane ];
20   };
22   accessor = janePackage {
23     pname = "accessor";
24     hash = "sha256-yClfUXqwVoipF4WqbqC6VBVYc6t8MZYVoHGjchH7XQA=";
25     meta.description = "A library that makes it nicer to work with nested functional data structures";
26     propagatedBuildInputs = [ higher_kinded ];
27   };
29   accessor_async = janePackage {
30     pname = "accessor_async";
31     hash = "sha256-kGT7aFNOgU8/2ez9L/lefb2LN7I87+WthZHnb+dY9PE=";
32     meta.description = "Accessors for Async types, for use with the Accessor library";
33     propagatedBuildInputs = [ accessor_core async_kernel ];
34   };
36   accessor_base = janePackage {
37     pname = "accessor_base";
38     hash = "sha256-idnSNP6kfoV3I8QAMJ2YoUrewBpyte+0/C371aMTIxo=";
39     meta.description = "Accessors for Base types, for use with the Accessor library";
40     propagatedBuildInputs = [ ppx_accessor ];
41   };
43   accessor_core = janePackage {
44     pname = "accessor_core";
45     hash = "sha256-f4s/I+xDi/aca1WgaE+P3CD4e80jenS0WHg4T1Stcbg=";
46     meta.description = "Accessors for Core types, for use with the Accessor library";
47     propagatedBuildInputs = [ accessor_base core_kernel ];
48   };
50   async = janePackage {
51     pname = "async";
52     hash = "sha256-TpsC9sn8noiNI0aYbMalUUv3xlC2LMERsv6Gr928Vzc=";
53     meta.description = "Monadic concurrency library";
54     propagatedBuildInputs = [ async_rpc_kernel async_unix textutils ];
55     doCheck = false; # we don't have netkit_sockets
56   };
58   async_durable = janePackage {
59     pname = "async_durable";
60     hash = "sha256-PImYpM9xNFUWeWRld4jFwWBRowUP1iXzdxkK/fP/rHE=";
61     meta.description = "Durable connections for use with async";
62     propagatedBuildInputs = [ async_kernel async_rpc_kernel core core_kernel ppx_jane ];
63   };
65   async_extra = janePackage {
66     pname = "async_extra";
67     hash = "sha256-Y+gTlJuKmwvEEPuMPu7v0iYeNQtlzP8QiS0PSgoYrrI=";
68     meta.description = "Monadic concurrency library";
69     propagatedBuildInputs = [ async_kernel ];
70   };
72   async_find = janePackage {
73     pname = "async_find";
74     hash = "sha256-PG6BJx9tfP+zcDaG+7WdHiv4jUqsUH2TvHV6UXdzPAg=";
75     meta.description = "Directory traversal with Async";
76     propagatedBuildInputs = [ async ];
77   };
79   async_inotify = janePackage {
80     pname = "async_inotify";
81     hash = "sha256-seFbs06w3T+B49sw3nOjpXpoJbJ+IJ3qN5LnufrsE48=";
82     meta.description = "Async wrapper for inotify";
83     propagatedBuildInputs = [ async_find inotify ];
84   };
86   async_interactive = janePackage {
87     pname = "async_interactive";
88     hash = "sha256-xZKVT8L2rOLBeg7wK0tD6twhkDfwQp5ZKy4DPp1UWq8=";
89     meta.description = "Utilities for building simple command-line based user interfaces";
90     propagatedBuildInputs = [ async ];
91   };
93   async_js = janePackage {
94     pname = "async_js";
95     hash = "sha256-JyF1busOv9JWxp55oaxBozIQyCKlmAY3csBA4/98qy0=";
96     meta.description = "A small library that provide Async support for JavaScript platforms";
97     buildInputs = [ js_of_ocaml-ppx ];
98     propagatedBuildInputs = [ async_rpc_kernel js_of_ocaml uri-sexp ];
99   };
101   async_kernel = janePackage {
102     pname = "async_kernel";
103     hash = "sha256-EDgdZc6GRyiiFtnElNE9jGPEjPIUniP9uB/JoySkZz8=";
104     meta.description = "Monadic concurrency library";
105     propagatedBuildInputs = [ core_kernel ];
106   };
108   async_rpc_kernel = janePackage {
109     pname = "async_rpc_kernel";
110     hash = "sha256-OccFMfhTRSQwx1LJcN8OkDpA62KabsyWn2hox84jqow=";
111     meta.description = "Platform-independent core of Async RPC library";
112     propagatedBuildInputs = [ async_kernel protocol_version_header ];
113   };
115   async_rpc_websocket = janePackage {
116     pname = "async_rpc_websocket";
117     hash = "sha256-S3xIw/mew9YhtenWfp8ZD82WtOQSzJHtreT1+kRivus=";
118     meta.description = "Library to serve and dispatch Async RPCs over websockets";
119     propagatedBuildInputs = [ async_rpc_kernel async_websocket cohttp_async_websocket ];
120   };
122   async_sendfile = janePackage {
123     pname = "async_sendfile";
124     hash = "sha256-ykl87/De56gz6JRQfTIeWrU823PT2fnFJr08GxuDYic=";
125     meta.description = "Thin wrapper around [Linux_ext.sendfile] to send full files";
126     propagatedBuildInputs = [ async_unix ];
127   };
129   async_shell = janePackage {
130     pname = "async_shell";
131     hash = "sha256-DjIbadCjPymnkDsnonmxKumCWf5P9XO3ZaAwOaYRnbk=";
132     meta.description = "Shell helpers for Async";
133     propagatedBuildInputs = [ async shell ];
134   };
136   async_smtp = janePackage {
137     pname = "async_smtp";
138     hash = "sha256-X0eegZMMU9EnC9Oi+6DjtwNmyzQYr3EKi1duNzEAfkk=";
139     meta.description = "SMTP client and server";
140     propagatedBuildInputs = [ async_extra async_inotify async_sendfile async_shell async_ssl email_message resource_cache re2_stable sexp_macro ];
141   };
143   async_ssl = janePackage {
144     version = "0.16.1";
145     pname = "async_ssl";
146     hash = "sha256-83YKxvVb/JwBnQG4R/R1Ztik9T/hO4cbiNTfFnErpG4=";
147     meta.description = "Async wrappers for SSL";
148     buildInputs = [ dune-configurator ];
149     propagatedBuildInputs = [ async ctypes ctypes-foreign openssl ];
150   };
152   async_unix = janePackage {
153     pname = "async_unix";
154     hash = "sha256-dT+yJC73sxS4NPR/GC/FyVLbWtYpM9DqKykVk8PEEWU=";
155     meta.description = "Monadic concurrency library";
156     propagatedBuildInputs = [ async_kernel core_unix ];
157   };
159   async_websocket = janePackage {
160     pname = "async_websocket";
161     hash = "sha256-Qy+A8ee6u5Vr05FNeaH/6Sdp9bcq3cnaDYO9OU06VW0=";
162     meta.description = "A library that implements the websocket protocol on top of Async";
163     propagatedBuildInputs = [ async cryptokit ];
164   };
166   babel = janePackage {
167     pname = "babel";
168     hash = "sha256-nnMliU0d6vtHTYEy9uMi8nMaHvAsEXKN6uNByqZ28+c=";
169     meta.description = "A library for defining Rpcs that can evolve over time without breaking backward compatibility";
170     propagatedBuildInputs = [ async_rpc_kernel core ppx_jane streamable tilde_f ];
171   };
173   base = janePackage {
174     pname = "base";
175     version = "0.16.2";
176     hash = "sha256-8OvZe+aiWipJ6busBufx3OqERmqxBva55UOLjL8KoPc=";
177     meta.description = "Full standard library replacement for OCaml";
178     buildInputs = [ dune-configurator ];
179     propagatedBuildInputs = [ sexplib0 ];
180     checkInputs = [ alcotest ];
181   };
183   base_bigstring = janePackage {
184     pname = "base_bigstring";
185     hash = "sha256-gQbzdr05DEowzd0k9JBTF0gGMwlaVwTVJuoKZ0u9voU=";
186     meta.description = "String type based on [Bigarray], for use in I/O and C-bindings";
187     propagatedBuildInputs = [ int_repr ppx_jane ];
188   };
190   base_trie = janePackage {
191     pname = "base_trie";
192     hash = "sha256-KV/k3B0h/4rE+MY6f4qDnlaObMmewUS+NAN2M7sb+yw=";
193     meta.description = "Trie data structure library";
194     propagatedBuildInputs = [ base core expect_test_helpers_core ppx_jane ];
195   };
197   base_quickcheck = janePackage {
198     pname = "base_quickcheck";
199     hash = "sha256-9Flg8vAoT6f+3lw9wETQhsaA1fSsQiqKeEhzo0qtDu4=";
200     meta.description = "Randomized testing framework, designed for compatibility with Base";
201     propagatedBuildInputs = [ ppx_base ppx_fields_conv ppx_let ppx_sexp_value splittable_random ];
202   };
204   bidirectional_map = janePackage {
205     pname = "bidirectional_map";
206     hash = "sha256-YEzOdzanBJaskI2/xN9E3ozWnBXDyxJvY3g/qEE73yI=";
207     meta.description = "A library for bidirectional maps and multimaps";
208   };
210   bignum = janePackage {
211     pname = "bignum";
212     hash = "sha256-PmvqGImF1Nrr6swx5q3+9mCfSbieC3RvWuz8oCTkSgg=";
213     propagatedBuildInputs = [ core_kernel zarith zarith_stubs_js ];
214     meta.description = "Core-flavoured wrapper around zarith's arbitrary-precision rationals";
215   };
217   bin_prot = janePackage {
218     pname = "bin_prot";
219     hash = "sha256-qFkM6TrTLnnFKmzQHktBb68HpBTMYhiURvnRKEoAevk=";
220     meta.description = "A binary protocol generator";
221     propagatedBuildInputs = [ ppx_compare ppx_custom_printf ppx_fields_conv ppx_optcomp ppx_stable_witness ppx_variants_conv ];
222   };
224   bonsai = janePackage {
225     pname = "bonsai";
226     hash = "sha256-YJ+qkVG5PLBmioa1gP7y6jwn82smyyYDIwHwhDqNeWM=";
227     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
228     buildInputs = [ ppx_pattern_bind ];
229     nativeBuildInputs = [ ppx_css js_of_ocaml-compiler ocaml-embed-file ];
230     propagatedBuildInputs = [
231       async
232       async_durable
233       async_extra
234       async_rpc_websocket
235       babel
236       cohttp-async
237       core_bench
238       fuzzy_match
239       incr_dom
240       indentation_buffer
241       js_of_ocaml-ppx
242       ordinal_abbreviation
243       patdiff
244       polling_state_rpc
245       ppx_css
246       ppx_typed_fields
247       profunctor
248       sexp_grammar
249       textutils
250     ];
251   };
253   cinaps = janePackage {
254     pname = "cinaps";
255     version = "0.15.1";
256     hash = "sha256-LycruanldSP251uYJjQqIfI76W0UQ6o5i5u8XjszBT0=";
257     meta.description = "Trivial metaprogramming tool";
258     minimalOCamlVersion = "4.04";
259     propagatedBuildInputs = [ re ];
260     doCheck = false; # fails because ppx_base doesn't include ppx_js_style
261   };
263   cohttp_async_websocket = janePackage {
264     pname = "cohttp_async_websocket";
265     hash = "sha256-OBtyKMyvfz0KNG4SWmvoTMVPnVTpO12N38q+kEbegJE=";
266     meta.description = "Websocket library for use with cohttp and async";
267     propagatedBuildInputs = [ async_websocket cohttp-async ppx_jane uri-sexp ];
268   };
270   cohttp_static_handler = janePackage {
271     pname = "cohttp_static_handler";
272     hash = "sha256-7NCnJVArudBEvWARQUGlJuEq3kSCjpn5YtsLsL04bf4=";
273     meta.description = "A library for easily creating a cohttp handler for static files";
274     propagatedBuildInputs = [ cohttp-async ];
275   };
277   content_security_policy = janePackage {
278     pname = "content_security_policy";
279     hash = "sha256-q/J+ZzeC6txyuRQzR8Hmu7cYJCQbxaMlVEmK8fj0hus=";
280     meta.description = "A library for building content-security policies";
281     propagatedBuildInputs = [ core ppx_jane ];
282   };
284   core = janePackage {
285     pname = "core";
286     version = "0.16.2";
287     hash = "sha256-cyOU++XJJkU2YMHfn8saFOxLoQSFhF7kARJi/9unbFQ=";
288     meta.description = "Industrial strength alternative to OCaml's standard library";
289     buildInputs = [ jst-config ];
290     propagatedBuildInputs = [ base base_bigstring base_quickcheck ppx_jane time_now ];
291     doCheck = false; # circular dependency with core_kernel
292   };
294   core_bench = janePackage {
295     pname = "core_bench";
296     hash = "sha256-ASdu3ZUk+nkdNX9UbBQxKRdXBa073mWMDRW+Ceu3/t4=";
297     meta.description = "Benchmarking library";
298     propagatedBuildInputs = [ textutils ];
299   };
301   core_extended = janePackage {
302     pname = "core_extended";
303     hash = "sha256-hcjmFDdVKCHK8u6D4Qn2a/HYTEZOvkXHcB6BTpbjF/s=";
304     meta.description = "Extra components that are not as closely vetted or as stable as Core";
305     propagatedBuildInputs = [ core_unix record_builder ];
306   };
308   core_kernel = janePackage {
309     pname = "core_kernel";
310     hash = "sha256-YB3WMNLePrOKu+mmVedNo0pWN9x5fIaBxJsby56TFJU=";
311     meta.description = "System-independent part of Core";
312     buildInputs = [ jst-config ];
313     propagatedBuildInputs = [ base_bigstring core int_repr sexplib ];
314     doCheck = false; # we don't have quickcheck_deprecated
315   };
317   core_unix = janePackage {
318     pname = "core_unix";
319     hash = "sha256-mePpxjbUumMemHDKhRgACilchgS6QHZEV1ghYtT3flg=";
320     meta.description = "Unix-specific portions of Core";
321     buildInputs = [ jst-config ];
322     propagatedBuildInputs = [ core_kernel expect_test_helpers_core ocaml_intrinsics ppx_jane timezone spawn ];
323     postPatch = ''
324       patchShebangs unix_pseudo_terminal/src/discover.sh
325     '';
326   };
328   csvfields = janePackage {
329     pname = "csvfields";
330     hash = "sha256-FEkjRmLeqNvauBlrY2xtLZfxVfnFWU8w8noEArPUieo=";
331     propagatedBuildInputs = [ core num ];
332     meta.description = "Runtime support for ppx_xml_conv and ppx_csv_conv";
333   };
335   dedent = janePackage {
336     pname = "dedent";
337     hash = "sha256-fzytLr3tVr2vPmykUBzNFMxnyMcIeeo8S9BydsTKnQw=";
338     propagatedBuildInputs = [ base ppx_jane stdio ];
339     meta.description = "A library for improving redability of multi-line string constants in code";
340   };
342   delimited_parsing = janePackage {
343     pname = "delimited_parsing";
344     hash = "sha256-XyO3hzPz48i1cnMTJvZfarM6HC7qdHqdftp9SnCjPEU=";
345     propagatedBuildInputs = [ async core_extended ];
346     meta.description = "Parsing of character (e.g., comma) separated and fixed-width values";
347   };
349   diffable = janePackage {
350     pname = "diffable";
351     hash = "sha256-ascQUbxzvRR8XrroaupyFZ2YNQMvlXn4PemumYTwRF4=";
352     propagatedBuildInputs = [ core ppx_jane stored_reversed streamable ];
353     meta.description = "An interface for diffs";
354   };
356   ecaml = janePackage {
357     pname = "ecaml";
358     hash = "sha256-VS7eTTD85ci3mJIXd2pG1Y/ygT9dCIvfzU2HtOufW6U=";
359     meta.description = "Library for writing Emacs plugin in OCaml";
360     propagatedBuildInputs = [ async expect_test_helpers_core ];
361   };
363   email_message = janePackage {
364     pname = "email_message";
365     hash = "sha256-eso68owbAspjaVgj/wGFQ7VQYlAwyYV3oNitLQWiRPA=";
366     meta.description = "E-mail message parser";
367     propagatedBuildInputs = [ angstrom async base64 cryptokit magic-mime re2 ];
368   };
370   env_config = janePackage {
371     pname = "env_config";
372     hash = "sha256-CvvpKI7F40DVC7iByrzCqW1ilPiIhdDPYaJrDoUZVSs=";
373     meta.description = "Helper library for retrieving configuration from an environment variable";
374     propagatedBuildInputs = [ async core core_unix ppx_jane ];
375   };
377   expect_test_helpers_async = janePackage {
378     pname = "expect_test_helpers_async";
379     hash = "sha256-dEvOMb1aCEt05XtkKIC9jWoIQ/2zM0Gj+K/ZN3bFjeI=";
380     meta.description = "Async helpers for writing expectation tests";
381     propagatedBuildInputs = [ async expect_test_helpers_core ];
382   };
384   expect_test_helpers_core = janePackage {
385     pname = "expect_test_helpers_core";
386     hash = "sha256-8DsMwk9WhQQ7iMNYSFBglfbcgvE5dySt4J4qjzJ3dJk=";
387     meta.description = "Helpers for writing expectation tests";
388     propagatedBuildInputs = [ core_kernel sexp_pretty ];
389   };
391   fieldslib = janePackage {
392     pname = "fieldslib";
393     hash = "sha256-dwkO65sBsPfTF0F2FKrnttEjhAY2OMbJetSgOfUXk3A=";
394     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";
395     propagatedBuildInputs = [ base ];
396   };
398   file_path = janePackage {
399     pname = "file_path";
400     hash = "sha256-EEpDZNgUgyeqivRhZgQWWlerl+7OOcvAbjjQ3e1NYOQ=";
401     meta.description =
402       "A library for typed manipulation of UNIX-style file paths";
403     propagatedBuildInputs = [
404       async
405       core
406       core_kernel
407       core_unix
408       expect_test_helpers_async
409       expect_test_helpers_core
410       ppx_jane
411     ];
412   };
414   fuzzy_match = janePackage {
415     pname = "fuzzy_match";
416     hash = "sha256-M3yOqP0/OZFbqZZpgDdhJ/FZU3MhKwIXbWjwuMlxe2Q=";
417     meta.description = "A library for fuzzy string matching";
418     propagatedBuildInputs = [ core ppx_jane ];
419   };
421   fzf = janePackage {
422     pname = "fzf";
423     hash = "sha256-IQ2wze34LlOutecDOrPhj3U7MFVJTSjQW+If3QyHoes=";
424     meta.description = "A library for running the fzf command line tool";
425     propagatedBuildInputs = [ async core_kernel ppx_jane ];
426     postPatch = ''
427       substituteInPlace src/fzf.ml --replace /usr/bin/fzf ${fzf}/bin/fzf
428     '';
429   };
431   hex_encode = janePackage {
432     pname = "hex_encode";
433     hash = "sha256-jnsf5T1D1++AUdrato/NO3gTVXu14klXozHFIG9HH/o=";
434     meta.description = "Hexadecimal encoding library";
435     propagatedBuildInputs = [ core ppx_jane ounit ];
436   };
438   higher_kinded = janePackage {
439     pname = "higher_kinded";
440     hash = "sha256-aCpYc7f4mrPsGp038YabEyw72cA6GbCKsok+5Hej5P0=";
441     meta.description = "A library with an encoding of higher kinded types in OCaml";
442     propagatedBuildInputs = [ base ppx_jane ];
443   };
445   incr_dom = janePackage {
446     pname = "incr_dom";
447     hash = "sha256-fnD/YnaGK6MIy/fL6bDwcoGDJhHo2+1l8dCXxwN28kg=";
448     meta.description = "A library for building dynamic webapps, using Js_of_ocaml";
449     buildInputs = [ js_of_ocaml-ppx ];
450     propagatedBuildInputs = [ async_js incr_map incr_select virtual_dom ];
451   };
453   incr_map = janePackage {
454     pname = "incr_map";
455     hash = "sha256-D3ZD0C4YfZOfXw+3CtqL8DKcz+b06UL8AF7Rf9x+hps=";
456     meta.description = "Helpers for incremental operations on map like data structures";
457     buildInputs = [ ppx_pattern_bind ];
458     propagatedBuildInputs = [ abstract_algebra bignum diffable incremental streamable ];
459   };
461   incr_select = janePackage {
462     pname = "incr_select";
463     hash = "sha256-gRUF0QsDaZfHU7Mexl5nR8xCN+65v28/r/ciueR5NdE=";
464     meta.description = "Handling of large set of incremental outputs from a single input";
465     propagatedBuildInputs = [ incremental ];
466   };
468   incremental = janePackage {
469     pname = "incremental";
470     hash = "sha256-PXGY0M2xeVWDLeS3SrqXy1dqsyeKgndGT6NpuiyNQQQ=";
471     meta.description = "Library for incremental computations";
472     propagatedBuildInputs = [ core_kernel lru_cache ];
473   };
475   indentation_buffer = janePackage {
476     pname = "indentation_buffer";
477     hash = "sha256-5ayWs7yUnuxh5S3Dp0GbYTkGXttDMomfZak4MHePFbk=";
478     meta.description = "A library for building strings with indentation";
479     propagatedBuildInputs = [ core ppx_jane ];
480   };
482   int_repr = janePackage {
483     pname = "int_repr";
484     hash = "sha256-lghu2U1JwZaR4dkd9PcJEW3pZSPoaFhUluIDwFAYFK0=";
485     meta.description = "Integers of various widths";
486     propagatedBuildInputs = [ base ppx_jane ];
487   };
489   janestreet_cpuid = janePackage {
490     pname = "janestreet_cpuid";
491     hash = "sha256-lN8+8uhcVn3AoApWzqeCe/It1G6f0VgZzFcwFEckejk=";
492     meta.description = "A library for parsing CPU capabilities out of the `cpuid` instruction";
493     propagatedBuildInputs = [ core core_kernel ppx_jane ];
494   };
496   janestreet_csv = janePackage {
497     pname = "janestreet_csv";
498     hash = "sha256-XLyHxVlgBvMIBrG2wzOudbKqy+N12Boheb3K+6o9y1o=";
499     propagatedBuildInputs = [ async bignum core_kernel core_unix csvfields delimited_parsing fieldslib numeric_string ppx_jane re2 textutils tyxml ocaml_pcre ];
500     meta.description = "Tools for working with CSVs on the command line";
501   };
503   jane_rope = janePackage {
504     pname = "jane_rope";
505     hash = "sha256-MpjbwV+VS3qRuW8kxhjGzsITEdrPeWyr0V+LiKR6U8U=";
506     meta.description = "String representation with cheap concatenation";
507     propagatedBuildInputs = [ base ppx_jane ];
508   };
510   jane-street-headers = janePackage {
511     pname = "jane-street-headers";
512     hash = "sha256-vS6tPg8LJolte/zI5KHFYCtNuZjn//cmd94Wls3bLCU=";
513     meta.description = "Jane Street C header files";
514   };
516   js_of_ocaml_patches = janePackage {
517     pname = "js_of_ocaml_patches";
518     hash = "sha256-Uj+X/0XUP5Za8NKfHGo9OZnqzKCiuurYJyluD6b0wOQ=";
519     meta.description = "Additions to js_of_ocaml's standard library that are required by Jane Street libraries";
520     propagatedBuildInputs = [ js_of_ocaml js_of_ocaml-ppx ];
521   };
523   jsonaf = janePackage {
524     pname = "jsonaf";
525     hash = "sha256-Gn54NUg4YOyrXY5kXCZhHFz24CfUT9c55cJ2sOsNVw8=";
526     meta.description = "A library for parsing, manipulating, and serializing data structured as JSON";
527     propagatedBuildInputs = [ base ppx_jane angstrom faraday ];
528   };
530   jst-config = janePackage {
531     pname = "jst-config";
532     hash = "sha256-GviY+zYza7UNYOlAnfAz0aH4LH2B5xA+7iELLuZLgQQ=";
533     meta.description = "Compile-time configuration for Jane Street libraries";
534     buildInputs = [ dune-configurator ppx_assert stdio ];
535   };
537   krb = janePackage {
538     pname = "krb";
539     hash = "sha256-+XwYKwpl668fZ23YEbL1wW9PlaIIjbP/hHwNanf3dAY=";
540     meta.description = "A library for using Kerberos for both Rpc and Tcp communication";
541     propagatedBuildInputs = [ async base core env_config hex_encode ppx_jane protocol_version_header username_kernel dune-configurator krb5 ];
542   };
544   lru_cache = janePackage {
545     pname = "lru_cache";
546     hash = "sha256-FqOBC4kBL9IuFIL4JrVU7iF1AUu+1R/CchR52eyEsa8=";
547     meta.description = "An LRU Cache implementation";
548     propagatedBuildInputs = [ core_kernel ppx_jane ];
549   };
551   man_in_the_middle_debugger = janePackage {
552     pname = "man_in_the_middle_debugger";
553     hash = "sha256-b2A/ITf9gx3thSdEY2n7jxKrMOVDpzx4JkSMB3aTyE4=";
554     meta.description = "Man-in-the-middle debugging library";
555     propagatedBuildInputs = [ async core ppx_jane angstrom angstrom-async ];
556   };
558   n_ary = janePackage {
559     pname = "n_ary";
560     hash = "sha256-ofstQs5R25NTP4EtBIzDE/Mzg9ZzAJKfAF838uu0zuE=";
561     meta.description = "A library for N-ary datatypes and operations";
562     propagatedBuildInputs = [ base expect_test_helpers_core ppx_compare ppx_enumerate ppx_hash ppx_jane ppx_sexp_conv ppx_sexp_message ];
563   };
565   numeric_string = janePackage {
566     pname = "numeric_string";
567     hash = "sha256-MzRPXMR4Pi07mfJQgOV6R1Z22y2tvQTCq22+00aY1ik=";
568     meta.description = "A comparison function for strings that sorts numeric fragments of strings according to their numeric value";
569     propagatedBuildInputs = [ base ppx_jane ];
570   };
572   ocaml-compiler-libs = janePackage {
573     pname = "ocaml-compiler-libs";
574     version = "0.12.4";
575     hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
576     minimalOCamlVersion = "4.04.1";
577     meta.description = "OCaml compiler libraries repackaged";
578   };
580   ocaml-embed-file = janePackage {
581     pname = "ocaml-embed-file";
582     hash = "sha256-rs+68VATumUgZQ9QrG+By5yNc8cy7avL0BDeqwix0co=";
583     propagatedBuildInputs = [ async ppx_jane ];
584     meta.description = "Files contents as module constants";
585   };
587   ocaml_intrinsics = janePackage {
588     pname = "ocaml_intrinsics";
589     hash = "sha256-fbFXTakzxQEeCONSXRXh8FX3HD6h49LZHVsH62Zu3PA=";
590     meta.description = "Intrinsics";
591     buildInputs = [ dune-configurator ];
592     doCheck = false; # test rules broken
593   };
595   of_json = janePackage {
596     pname = "of_json";
597     hash = "sha256-qh9mX03Fk9Jb8yox7mZ/CGbWecszK15oaygKbJVDqa0=";
598     meta.description = "A friendly applicative interface for Jsonaf";
599     buildInputs = [ core core_extended jsonaf ppx_jane ];
600   };
602   ordinal_abbreviation = janePackage {
603     pname = "ordinal_abbreviation";
604     hash = "sha256-bGlzFcM6Yw8fcuovrv11WNtAB4mVYv4BjuMlkhsHomQ=";
605     meta.description = "A minimal library for generating ordinal names of integers";
606     buildInputs = [ base ppx_jane ];
607   };
609   parsexp = janePackage {
610     pname = "parsexp";
611     hash = "sha256-oc2ASDtUyRBB68tjAoblryAcXF+u3XP1mkQPO5hNbKo=";
612     meta.description = "S-expression parsing library";
613     propagatedBuildInputs = [ base sexplib0 ];
614   };
616   patdiff = janePackage {
617     pname = "patdiff";
618     hash = "sha256-iVRYKgVBBJws3ZlUwnZt52bIydMtzV7a2R5mjksQAps=";
620     # Used by patdiff-git-wrapper.  Providing it here also causes the shebang
621     # line to be automatically patched.
622     buildInputs = [ bash ];
623     propagatedBuildInputs = [ core_unix patience_diff ocaml_pcre ];
624     meta = {
625       description = "File Diff using the Patience Diff algorithm";
626     };
627   };
629   patience_diff = janePackage {
630     pname = "patience_diff";
631     hash = "sha256-JZd99bwLUNhFHng55d77yXSw9u50ahugepesXVdUl04=";
632     meta.description = "Diff library using Bram Cohen's patience diff algorithm";
633     propagatedBuildInputs = [ core_kernel ];
634   };
636   polling_state_rpc = janePackage {
637     pname = "polling_state_rpc";
638     hash = "sha256-l7SMFI+U2rde2OSUNOXPb9NBsvjPrBcxStNooxMgVB8=";
639     meta.description = "An RPC which tracks state on the client and server so it only needs to send diffs across the wire";
640     propagatedBuildInputs = [ async_kernel async_rpc_kernel core core_kernel diffable ppx_jane ];
641   };
643   posixat = janePackage {
644     pname = "posixat";
645     hash = "sha256-Nhp5jiK/TTwQXY5Bm4TTeH+xDTdXtvkSq5CS/Sr1UgA=";
646     propagatedBuildInputs = [ ppx_optcomp ppx_sexp_conv ];
647     meta.description = "Binding to the posix *at functions";
648   };
650   ppx_accessor = janePackage {
651     version = "0.16.1";
652     pname = "ppx_accessor";
653     hash = "sha256-o70q8eSbPeuGkIcCnKoK0BpaqPhy/NS7x2YYR6wfki8=";
654     meta.description = "[@@deriving] plugin to generate accessors for use with the Accessor libraries";
655     propagatedBuildInputs = [ accessor ];
656   };
658   ppx_assert = janePackage {
659     pname = "ppx_assert";
660     hash = "sha256-LrpKE0BlFC3QseSXf5WhI71blshUzhH8yo2nXjAtiB8=";
661     meta.description = "Assert-like extension nodes that raise useful errors on failure";
662     propagatedBuildInputs = [ ppx_cold ppx_compare ppx_here ppx_sexp_conv ];
663   };
665   ppx_base = janePackage {
666     pname = "ppx_base";
667     hash = "sha256-Ak+7+33qEGYwZWbES032SdkFOsae0+tWtR/DV+xrB10=";
668     meta.description = "Base set of ppx rewriters";
669     propagatedBuildInputs = [ ppx_cold ppx_enumerate ppx_globalize ppx_hash ];
670   };
672   ppx_bench = janePackage {
673     pname = "ppx_bench";
674     hash = "sha256-NZlzEMruf89NsI4jfQJLSPhjk/PN47hLbJzGEN8GPl8=";
675     meta.description = "Syntax extension for writing in-line benchmarks in ocaml code";
676     propagatedBuildInputs = [ ppx_inline_test ];
677   };
679   ppx_bin_prot = janePackage {
680     pname = "ppx_bin_prot";
681     hash = "sha256-ktfa4umCnLd9oY2WWX/5R7vPB/g7DJX8x3nF9fYLNCQ=";
682     meta.description = "Generation of bin_prot readers and writers from types";
683     propagatedBuildInputs = [ bin_prot ppx_here ];
684     doCheck = false; # circular dependency with ppx_jane
685   };
687   ppx_cold = janePackage {
688     pname = "ppx_cold";
689     hash = "sha256-boP07qHPbzf4ntLdV18oyID09ZUOfkIn9ZdQ0DvtrUA=";
690     meta.description = "Expands [@cold] into [@inline never][@specialise never][@local never]";
691     propagatedBuildInputs = [ ppxlib ];
692   };
694   ppx_compare = janePackage {
695     pname = "ppx_compare";
696     hash = "sha256-4bZdhyfnzTjH4E303O6GO2jW968ftuXwoE4/x854JOo=";
697     meta.description = "Generation of comparison functions from types";
698     propagatedBuildInputs = [ ppxlib base ];
699   };
701   ppx_custom_printf = janePackage {
702     pname = "ppx_custom_printf";
703     hash = "sha256-V30ijRgcma/rwysPxNAFnuJIb7XFrfi7mfjJxN+rSak=";
704     meta.description = "Printf-style format-strings for user-defined string conversion";
705     propagatedBuildInputs = [ ppx_sexp_conv ];
706   };
708   ppx_css = janePackage {
709     pname = "ppx_css";
710     hash = "sha256-spT/dJW8YJtG4pOku9r6VVlBAMwGakTrr1euiABeqsU=";
711     meta.description = "A ppx that takes in css strings and produces a module for accessing the unique names defined within";
712     propagatedBuildInputs = [ async async_unix core_kernel core_unix ppxlib js_of_ocaml js_of_ocaml-ppx sedlex virtual_dom ];
713   };
715   ppx_demo = janePackage {
716     pname = "ppx_demo";
717     hash = "sha256-t/jz94YpwmorhWlcuflIZe0l85cESE62L9I7NMASVWM=";
718     meta.description = "PPX that exposes the source code string of an expression/module structure";
719     propagatedBuildInputs = [ core dedent ppx_jane ppxlib ];
720   };
722   ppx_derive_at_runtime = janePackage {
723     pname = "ppx_derive_at_runtime";
724     hash = "sha256-UESWOkyWTHJlsE6KZkty9P+iHI3oY1rLve3raRAqMbk=";
725     meta.description = "Define a new ppx deriver by naming a runtime module";
726     propagatedBuildInputs = [ base expect_test_helpers_core ppx_jane ppxlib ];
727   };
729   ppx_disable_unused_warnings = janePackage {
730     pname = "ppx_disable_unused_warnings";
731     hash = "sha256-jVNXmAy/Ti7MZmbdBjFuDwbmIILJB57flmmB6MoyCtY=";
732     meta.description = "Expands [@disable_unused_warnings] into [@warning \"-20-26-32-33-34-35-36-37-38-39-60-66-67\"]";
733     propagatedBuildInputs = [ ppxlib ];
734   };
736   ppx_enumerate = janePackage {
737     pname = "ppx_enumerate";
738     hash = "sha256-v5JPu+qEXoZ1+mu/yTZW2sfCzU0K60/sInG/Ox1D35s=";
739     meta.description = "Generate a list containing all values of a finite type";
740     propagatedBuildInputs = [ ppxlib ];
741   };
743   ppx_expect = janePackage {
744     pname = "ppx_expect";
745     hash = "sha256-H5ybRHufycdyCxKu370+QZAMUPQsHVD+6nD93tzvLn8=";
746     meta.description = "Cram like framework for OCaml";
747     propagatedBuildInputs = [ ppx_here ppx_inline_test re ];
748     doCheck = false; # test build rules broken
749   };
751   ppx_fields_conv = janePackage {
752     pname = "ppx_fields_conv";
753     hash = "sha256-kl0JZocMWo2KNciCWkT4nIbJZbh56ijZmlZWbxV8Qj0=";
754     meta.description = "Generation of accessor and iteration functions for ocaml records";
755     propagatedBuildInputs = [ fieldslib ppxlib ];
756   };
758   ppx_fixed_literal = janePackage {
759     pname = "ppx_fixed_literal";
760     hash = "sha256-vS2KcCO0fVCmiIBkUBgK6qnqdjREj57QCujHERcJTyo=";
761     meta.description = "Simpler notation for fixed point literals";
762     propagatedBuildInputs = [ ppxlib ];
763   };
765   ppx_globalize = janePackage {
766     pname = "ppx_globalize";
767     hash = "sha256-SG7710YPwWmhRVl7wN3ZQz3ZMTw3cpoywVSeVQAI3Zc=";
768     meta.description = "A ppx rewriter that generates functions to copy local values to the global heap";
769     propagatedBuildInputs = [ base ppxlib ];
770   };
772   ppx_hash = janePackage {
773     pname = "ppx_hash";
774     hash = "sha256-ZmdW+q7fak8iG42jRQgZ6chmjHHwrDSy9wg7pq/6zwk=";
775     meta.description = "A ppx rewriter that generates hash functions from type expressions and definitions";
776     propagatedBuildInputs = [ ppx_compare ppx_sexp_conv ];
777   };
779   ppx_here = janePackage {
780     pname = "ppx_here";
781     hash = "sha256-ULEom0pTusxf2k2hduv+5NVp7pW5doA/e3QGQNJfGoM=";
782     meta.description = "Expands [%here] into its location";
783     propagatedBuildInputs = [ ppxlib ];
784     doCheck = false; # test build rules broken
785   };
787   ppx_ignore_instrumentation = janePackage {
788     pname = "ppx_ignore_instrumentation";
789     hash = "sha256-rAdxCgAKz0jNR8ppRJO4oAEvgXbcU4J4mpreAyeGe6k=";
790     meta.description = "Ignore Jane Street specific instrumentation extensions";
791     propagatedBuildInputs = [ ppxlib ];
792   };
794   ppx_inline_test = janePackage {
795     pname = "ppx_inline_test";
796     hash = "sha256-Ql0/80KitKvW3xffeCapYREmZvlg+QWCb2JM2T4Rjlc=";
797     meta.description = "Syntax extension for writing in-line tests in ocaml code";
798     propagatedBuildInputs = [ ppxlib time_now ];
799     doCheck = false; # test build rules broken
800   };
802   ppx_jane = janePackage {
803     pname = "ppx_jane";
804     hash = "sha256-v+/wdEGaXdMWDBa0eJO0uR18G/pDwHjsjaskoEuLusA=";
805     meta.description = "Standard Jane Street ppx rewriters";
806     propagatedBuildInputs = [ base_quickcheck ppx_bin_prot ppx_disable_unused_warnings ppx_expect ppx_fixed_literal ppx_ignore_instrumentation ppx_log ppx_module_timer ppx_optcomp ppx_optional ppx_pipebang ppx_stable ppx_string ppx_tydi ppx_typerep_conv ppx_variants_conv ];
807   };
809   ppx_jsonaf_conv = janePackage {
810     pname = "ppx_jsonaf_conv";
811     hash = "sha256-GWDhSLtr2+VG3XFIbHgWUcLJFniC7/z90ndiE919CBo=";
812     meta.description =
813       "[@@deriving] plugin to generate Jsonaf conversion functions";
814     propagatedBuildInputs = [ base jsonaf ppx_jane ppxlib ];
815   };
817   ppx_js_style = janePackage {
818     pname = "ppx_js_style";
819     hash = "sha256-q5CLyeu+5qjegLrJkQVMnId3HMvZ8j3c0PqEa2vTBtU=";
820     meta.description = "Code style checker for Jane Street Packages";
821     propagatedBuildInputs = [ octavius ppxlib ];
822   };
824   ppx_let = janePackage {
825     pname = "ppx_let";
826     hash = "sha256-/kEkYXFZ5OyTM4i/WWViaxKvigpoKKoiWtUWuEMkgBE=";
827     meta.description = "Monadic let-bindings";
828     propagatedBuildInputs = [ ppxlib ppx_here ];
829   };
831   ppx_log = janePackage {
832     pname = "ppx_log";
833     hash = "sha256-/HwoxBWKuVqTDYe4u0cYNGqg2Lj0h49U2VrFa4cpE2g=";
834     meta.description = "Ppx_sexp_message-like extension nodes for lazily rendering log messages";
835     propagatedBuildInputs = [ base ppx_here ppx_sexp_conv ppx_sexp_message sexplib ];
836   };
838   ppx_module_timer = janePackage {
839     pname = "ppx_module_timer";
840     hash = "sha256-AfG+ZnacrR6p7MOvtktVKVLrMBpNMkX9b2+eqNZNRF4=";
841     meta.description = "Ppx rewriter that records top-level module startup times";
842     propagatedBuildInputs = [ time_now ];
843   };
845   ppx_optcomp = janePackage {
846     pname = "ppx_optcomp";
847     hash = "sha256-TONxBQq/b0kc89f3+jItHd9SnerNx8xa2AjO7HOW+xQ=";
848     meta.description = "Optional compilation for OCaml";
849     propagatedBuildInputs = [ ppxlib ];
850   };
852   ppx_optional = janePackage {
853     pname = "ppx_optional";
854     hash = "sha256-1GpKEEH1Ul+W0k4/8Mra/qYlyFpeMfZ3xrmB3X7uve0=";
855     meta.description = "Pattern matching on flat options";
856     propagatedBuildInputs = [ ppxlib ];
857   };
859   ppx_pattern_bind = janePackage {
860     pname = "ppx_pattern_bind";
861     hash = "sha256-ShR8N71a7sz5XaKDyybsy+K0Uu7sYMgvpMADVxmrI/g=";
862     meta.description = "A ppx for writing fast incremental bind nodes in a pattern match";
863     propagatedBuildInputs = [ ppx_let ];
864   };
866   ppx_pipebang = janePackage {
867     pname = "ppx_pipebang";
868     hash = "sha256-gSS+vfsYw3FFOFZ8/iRnP3rxokKAU7EPa1wXq7SbJBk=";
869     meta.description = "A ppx rewriter that inlines reverse application operators `|>` and `|!`";
870     propagatedBuildInputs = [ ppxlib ];
871   };
873   ppx_python = janePackage {
874     pname = "ppx_python";
875     hash = "sha256-lpc6F+Scc5ECdOXPWowKSWRnFSzKbmE8oHs7zCjq3j8=";
876     meta.description = "A [@@deriving] plugin to generate Python conversion functions ";
877     propagatedBuildInputs = [ ppx_base ppxlib pyml ];
878   };
880   ppx_sexp_conv = janePackage {
881     pname = "ppx_sexp_conv";
882     hash = "sha256-eCQfYAxZZmfNTbPrFW0sqrj63kIdIQ1MAlImCaMop68=";
883     meta.description = "[@@deriving] plugin to generate S-expression conversion functions";
884     propagatedBuildInputs = [ ppxlib sexplib0 base ];
885   };
887   ppx_sexp_message = janePackage {
888     pname = "ppx_sexp_message";
889     hash = "sha256-4g3Fjrjqhw+XNkCyxrXkgZDEa3e+ytPsEtQA2xSv+jA=";
890     meta.description = "A ppx rewriter for easy construction of s-expressions";
891     propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
892   };
894   ppx_sexp_value = janePackage {
895     pname = "ppx_sexp_value";
896     hash = "sha256-LsP+deeFYxB38xXw7LLB3gOMGZiUOFRYklGVY7DMmvE=";
897     meta.description = "A ppx rewriter that simplifies building s-expressions from ocaml values";
898     propagatedBuildInputs = [ ppx_here ppx_sexp_conv ];
899   };
901   ppx_stable = janePackage {
902     pname = "ppx_stable";
903     hash = "sha256-DFCBJY+Q8LjXSF9vHwPpUJLNyMoAXdDwQZrvhl+9g0U=";
904     meta.description = "Stable types conversions generator";
905     propagatedBuildInputs = [ ppxlib ];
906   };
908   ppx_stable_witness = janePackage {
909     pname = "ppx_stable_witness";
910     hash = "sha256-W1CN4xspM8NJiXfi7OsngfzWnLEUmBs+IRLwHfxX9d4=";
911     meta.description = "Ppx extension for deriving a witness that a type is intended to be stable";
912     propagatedBuildInputs = [ base ppxlib ];
913   };
915   ppx_string = janePackage {
916     pname = "ppx_string";
917     hash = "sha256-GQlgiaES8wc6Y7rTgmPrf9UfMfu125VoNGEbdc7kFsk=";
918     meta.description = "Ppx extension for string interpolation";
919     propagatedBuildInputs = [ ppx_base ppxlib stdio ];
920   };
922   ppx_tydi = janePackage {
923     pname = "ppx_tydi";
924     hash = "sha256-neu2Z7TgQdBzf8UtYDRhnGp3Iggfd90Fr+gQuwVTMOo=";
925     meta.description = "Let expressions, inferring pattern type from expression";
926     propagatedBuildInputs = [ base ppxlib ];
927   };
929   ppx_typed_fields = janePackage {
930     pname = "ppx_typed_fields";
931     hash = "sha256-l4lCQ4n5FLPS82sb3FgW+HF2OEY/kY10sNfr+aQF8x8=";
932     meta.description = "GADT-based field accessors and utilities";
933     propagatedBuildInputs = [ core ppx_jane ppxlib ];
934   };
936   ppx_typerep_conv = janePackage {
937     pname = "ppx_typerep_conv";
938     hash = "sha256-DxjgwZee0jOea7qyPfEhRrdcKWQb2jtjrowiJszS+Fs=";
939     meta.description = "Generation of runtime types from type declarations";
940     propagatedBuildInputs = [ ppxlib typerep ];
941   };
943   ppx_variants_conv = janePackage {
944     pname = "ppx_variants_conv";
945     hash = "sha256-Q/CCcMrD+XN5YRMzKvXuiQHfcwXwI773s8x150/eMzs=";
946     meta.description = "Generation of accessor and iteration functions for ocaml variant types";
947     propagatedBuildInputs = [ variantslib ppxlib ];
948   };
950   pythonlib = janePackage {
951     pname = "pythonlib";
952     version = "0.16";
953     hash = "sha256-HrsdtwPSDSaMB9CDIR9P5iaAmLihUrReuNAPIYa+s3Y=";
954     meta.description = "A library to help writing wrappers around ocaml code for python";
955     propagatedBuildInputs = [ base core expect_test_helpers_core ppx_compare ppx_expect ppx_here ppx_let ppx_python ppx_string stdio typerep pyml ];
956     meta.broken = lib.versionAtLeast ocaml.version "4.14";
957   };
959   profunctor = janePackage {
960     pname = "profunctor";
961     hash = "sha256-CFHMtCuBnrlr+B2cdJm2Tamt0A/e+f3SnjEavvE31xQ=";
962     meta.description = "A library providing a signature for simple profunctors and traversal of a record";
963     propagatedBuildInputs = [ base ppx_jane record_builder ];
964   };
966   protocol_version_header = janePackage {
967     pname = "protocol_version_header";
968     hash = "sha256-GVjnwne6ksjY9ptLOpbsgG0La6eiCJf1w4teYEtgJrA=";
969     meta.description = "Protocol versioning";
970     propagatedBuildInputs = [ core_kernel ];
971   };
973   re2 = janePackage {
974     pname = "re2";
975     hash = "sha256-ZRJ7ooXtatEEh0sPL8M9OZ+6s7xNdTuw0Ot6txiG16I=";
976     meta.description = "OCaml bindings for RE2, Google's regular expression library";
977     propagatedBuildInputs = [ core_kernel jane_rope regex_parser_intf ];
978     prePatch = ''
979       substituteInPlace src/re2_c/dune --replace 'CXX=g++' 'CXX=c++'
980       substituteInPlace src/dune --replace '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2))' '(cxx_flags (:standard \ -pedantic) (-I re2_c/libre2) (-x c++))'
981     '';
982   };
984   re2_stable = janePackage {
985     pname = "re2_stable";
986     version = "0.14.0";
987     hash = "sha256-gyet2Pzn7ZIqQ+UP2J51pRmwaESY2LSGTqCMZZwDTE4=";
988     meta.description = "Re2_stable adds an incomplete but stable serialization of Re2";
989     propagatedBuildInputs = [ core re2 ];
990   };
992   record_builder = janePackage {
993     pname = "record_builder";
994     hash = "sha256-46zGgN9RlDjoSbi8RimuQVrMhy65Gpic0YPZpHOeoo0=";
995     meta.description = "A library which provides traversal of records with an applicative";
996     propagatedBuildInputs = [ base ppx_jane ];
997   };
999   redis-async = janePackage {
1000     pname = "redis-async";
1001     hash = "sha256-5msIS2m8nkaprR8NEBfKFWZBWaDJiUtjHbfPelg9/os=";
1002     meta.description = "Redis client for Async applications";
1003     propagatedBuildInputs = [ async bignum core core_kernel ppx_jane ];
1004   };
1006   regex_parser_intf = janePackage {
1007     pname = "regex_parser_intf";
1008     hash = "sha256-huzHtUIIVRd5pE7VU1oUjN20S55L6+WCvoLlQ0FCD7A=";
1009     meta.description = "Interface shared by Re_parser and Re2.Parser";
1010     propagatedBuildInputs = [ base ];
1011   };
1013   resource_cache = janePackage {
1014     pname = "resource_cache";
1015     hash = "sha256-dN4skSHswgRYLZqN/tqhFFTfgoN8H/LgTgoe+5ZI5zE=";
1016     meta.description = "General resource cache";
1017     propagatedBuildInputs = [ async_rpc_kernel ];
1018   };
1020   semantic_version = janePackage {
1021     pname = "semantic_version";
1022     hash = "sha256-KJanaDUW56ndvnTlnPeQgh0C7zsRqXJ328gcEiVDrmc=";
1023     meta.description = "Semantic versioning";
1024     propagatedBuildInputs = [ core ppx_jane re ];
1025   };
1027   sexp = janePackage {
1028     pname = "sexp";
1029     hash = "sha256-JWRYi5lX9UOKg+RGvW6FO61t2HlnJKXhzctOHXe0bCM=";
1030     propagatedBuildInputs = [
1031       async
1032       core
1033       csvfields
1034       jsonaf
1035       re2
1036       sexp_diff
1037       sexp_macro
1038       sexp_pretty
1039       sexp_select
1040       shell
1041     ];
1042     meta.description = "S-expression swiss knife";
1043   };
1045   sexp_grammar = janePackage {
1046     pname = "sexp_grammar";
1047     hash = "sha256-Y/abRingL4+3qvaKgW9jH46E9uq7jYE2+kgr8ERKqfI=";
1048     propagatedBuildInputs = [ core ppx_bin_prot ppx_compare ppx_hash ppx_let ppx_sexp_conv ppx_sexp_message zarith ];
1049     meta.description = "Helpers for manipulating [Sexplib.Sexp_grammar] values";
1050   };
1052   sexp_diff = janePackage {
1053     pname = "sexp_diff";
1054     hash = "sha256-2dMBKf7eUbKZtvV7Ol2mPMzYJOCDHuOm9xFZ8vkmp/0=";
1055     propagatedBuildInputs = [ core_kernel ];
1056     meta.description = "Code for computing the diff of two sexps";
1057   };
1059   sexp_macro = janePackage {
1060     pname = "sexp_macro";
1061     hash = "sha256-x9WsFFrV7wUqgPUw8KkfyzOxLrS5h5++OSK8QljeQqg=";
1062     propagatedBuildInputs = [ async sexplib ];
1063     meta.description = "Sexp macros";
1064   };
1066   sexp_pretty = janePackage {
1067     pname = "sexp_pretty";
1068     hash = "sha256-tcWdYZ717LkGowRSRoEcUNY7VCMX64uhCaY3bXhWxKM=";
1069     meta.description = "S-expression pretty-printer";
1070     propagatedBuildInputs = [ ppx_base re sexplib ];
1071   };
1073   sexp_select = janePackage {
1074     pname = "sexp_select";
1075     hash = "sha256-HEzZowojeK9yDOoTY/l01fYLUdolzQGlMO9u3phV8so=";
1076     propagatedBuildInputs = [ base ppx_jane ];
1077     meta.description = "A library to use CSS-style selectors to traverse sexp trees";
1078   };
1080   sexplib0 = janePackage {
1081     pname = "sexplib0";
1082     hash = "sha256-wRr1M243Bqu/XLSsr5IVPH5RTVWeVgZjxkKOrm+PW5E=";
1083     minimalOCamlVersion = "4.08.0";
1084     meta.description = "Library containing the definition of S-expressions and some base converters";
1085   };
1087   sexplib = janePackage {
1088     pname = "sexplib";
1089     hash = "sha256-6MwggpjHo4FmKF88fP56LN9OHi2uIJc13TvKx4T7gEI=";
1090     meta.description = "Library for serializing OCaml values to and from S-expressions";
1091     propagatedBuildInputs = [ num parsexp ];
1092   };
1094   shell = janePackage {
1095     pname = "shell";
1096     hash = "sha256-pK434+ToeYURQHRV+gK57rC7BFvznWEvIu5NAib2ZTU=";
1097     meta.description = "Yet another implementation of fork&exec and related functionality";
1098     buildInputs = [ jst-config ];
1099     propagatedBuildInputs = [ textutils ];
1100     checkInputs = [ ounit ];
1101   };
1103   shexp = janePackage {
1104     pname = "shexp";
1105     hash = "sha256-npIcrxMOcIgsecdUEx5XHYp0KVrXiMzMLi8jskAp4vo=";
1106     propagatedBuildInputs = [ posixat spawn ];
1107     meta.description = "Process library and s-expression based shell";
1108   };
1110   spawn = janePackage {
1111     pname = "spawn";
1112     minimalOCamlVersion = "4.02.3";
1113     version = "0.15.0";
1114     hash = "1fjr91psas5zmk1hxvxh0dchhn0pkyzlr4gg232f5g9vdgissi0p";
1115     meta.description = "Spawning sub-processes";
1116     buildInputs = [ ppx_expect ];
1117   };
1119   splay_tree = janePackage {
1120     pname = "splay_tree";
1121     hash = "sha256-Ag6yqTofEZ3v0qF+Z7xpXQOh7+HWtvRLlY+iAYqcReg=";
1122     meta.description = "A splay tree implementation";
1123     propagatedBuildInputs = [ core_kernel ];
1124   };
1126   splittable_random = janePackage {
1127     pname = "splittable_random";
1128     hash = "sha256-wMmLuzhKmnS2iTYVTPUx5Rv2LhL/ygmWmb9t2pUjz+E=";
1129     meta.description = "PRNG that can be split into independent streams";
1130     propagatedBuildInputs = [ base ppx_assert ppx_bench ppx_sexp_message ];
1131   };
1133   stdio = janePackage {
1134     pname = "stdio";
1135     hash = "sha256-+QgxqSMqO4VGoMWWJ3QoXdtJKcVpxlSQ/OI7dmcNqjw=";
1136     meta.description = "Standard IO library for OCaml";
1137     propagatedBuildInputs = [ base ];
1138   };
1140   stored_reversed = janePackage {
1141     pname = "stored_reversed";
1142     hash = "sha256-ef11f0qifEvxKChM49Hnfk6J6hL+b0tMlm0iDLd5Y0Q=";
1143     meta.description = "A library for representing a list temporarily stored in reverse order";
1144     propagatedBuildInputs = [ core ppx_jane ];
1145   };
1147   streamable = janePackage {
1148     version = "0.16.1";
1149     pname = "streamable";
1150     hash = "sha256-3djrUW2tPKaEmoOIpdjN6ok7U9i07yreqbi1kP+6pnY=";
1151     meta.description = "A collection of types suitable for incremental serialization";
1152     propagatedBuildInputs = [ async_kernel async_rpc_kernel base core core_kernel ppx_jane ppxlib ];
1153   };
1155   textutils = janePackage {
1156     pname = "textutils";
1157     hash = "sha256-2qy99MUMpkuNCvCYlk36k4kN6cPjrEILbwEUv4DyNYw=";
1158     meta.description = "Text output utilities";
1159     propagatedBuildInputs = [ core_unix textutils_kernel ];
1160   };
1162   textutils_kernel = janePackage {
1163     pname = "textutils_kernel";
1164     hash = "sha256-DiXemANj5ONmvMzp+tly3AJud5u9i7HdaHmn8aVQS48=";
1165     meta.description = "Text output utilities";
1166     propagatedBuildInputs = [ core ppx_jane uutf ];
1167   };
1169   tilde_f = janePackage {
1170     pname = "tilde_f";
1171     hash = "sha256-qLjM9liJfMIh2fqRPBdnmtUf4xhzk2MY8dFNdON3Aew=";
1172     meta.description = "Provides a let-syntax for continuation-passing style";
1173     propagatedBuildInputs = [ base ppx_jane ];
1174   };
1176   time_now = janePackage {
1177     pname = "time_now";
1178     hash = "sha256-DjSrx/HgwCYS0Xzm2gFvWUVLD7a1KuFVIyVrJjBi8Tc=";
1179     meta.description = "Reports the current time";
1180     buildInputs = [ jst-config ppx_optcomp ];
1181     propagatedBuildInputs = [ jane-street-headers base ppx_base ];
1182   };
1184   timezone = janePackage {
1185     pname = "timezone";
1186     hash = "sha256-pmXUMvLfgAwP6TV/aP9wMlOs0KfwEWtaJfdjUFLbOu0=";
1187     meta.description = "Time-zone handling";
1188     propagatedBuildInputs = [ core_kernel ];
1189   };
1191   topological_sort = janePackage {
1192     pname = "topological_sort";
1193     hash = "sha256-um5++60mR++iHAruKqoQfd4EbQ1kb3L+cPOWhs9sIHI=";
1194     meta.description = "Topological sort algorithm";
1195     propagatedBuildInputs = [ ppx_jane stdio ];
1196   };
1198   typerep = janePackage {
1199     pname = "typerep";
1200     hash = "sha256-iJnIjWZYCTaH29x7nFviCrbnTmHRChZkkj6E5sgi4mU=";
1201     meta.description = "Typerep is a library for runtime types";
1202     propagatedBuildInputs = [ base ];
1203   };
1205   username_kernel = janePackage {
1206     pname = "username_kernel";
1207     hash = "sha256-UvFL/M9OsD+SOs9MYMKiKzZilLJHzriop6SPA4bOhZQ=";
1208     meta.description = "An identifier for a user";
1209     propagatedBuildInputs = [ core ppx_jane ];
1210   };
1212   variantslib = janePackage {
1213     pname = "variantslib";
1214     hash = "sha256-8NoNkyIP7iEEiei+Q1zrPoJjnWwhCsLsY1vgua22gnw=";
1215     meta.description = "Part of Jane Street's Core library";
1216     propagatedBuildInputs = [ base ];
1217   };
1219   vcaml = janePackage {
1220     pname = "vcaml";
1221     hash = "sha256-pmEKi24+22T76SzI3RpBmQF7ZrQwlngrpFYLoBdLwe0=";
1222     meta.description = "OCaml bindings for the Neovim API";
1223     propagatedBuildInputs = [ angstrom-async async_extra expect_test_helpers_async faraday jsonaf man_in_the_middle_debugger semantic_version ];
1224     patches = [ ./vcaml.patch ];
1225   };
1227   virtual_dom = janePackage {
1228     pname = "virtual_dom";
1229     hash = "sha256-nXW9cDHQVugriR0+GkayuV4S3HKothQAoNJef02iALM=";
1230     meta.description = "OCaml bindings for the virtual-dom library";
1231     buildInputs = [ js_of_ocaml-ppx ];
1232     propagatedBuildInputs = [ base64 core_kernel gen_js_api js_of_ocaml js_of_ocaml_patches lambdasoup tyxml uri ];
1233   };
1235   zarith_stubs_js = janePackage {
1236     pname = "zarith_stubs_js";
1237     hash = "sha256-oKD+JE08Mgvk5l8XFHSZ7xqiWPaOvKC87+zHLaQ/7q0=";
1238     meta.description = "Javascripts stubs for the Zarith library";
1239   };
1241   zstandard = janePackage {
1242     pname = "zstandard";
1243     hash = "sha256-QcYqlOpCAr0owmO6sLDJhki8lUnNvtkaxldKb5I5AF0=";
1244     meta.description = "OCaml bindings to Zstandard";
1245     buildInputs = [ ppx_jane ];
1246     propagatedBuildInputs = [ core_kernel ctypes zstd ];
1247   };