package alcotest

  1. Overview
  2. Docs
Alcotest is a lightweight and colourful test framework

Install

dune-project
 Dependency

Authors

Maintainers

Sources

alcotest-1.9.1.tbz
sha256=1e29c3b41d4329062105b723dfda3aff86b8cef5e7c7500d0e491fc5fd78e482
sha512=c49d402fa636dcf11f81917610dd1d2eca8606c8919aede4db23710d071f6046a8f93c78de9fbfee26637a53ca67f71fad500bfa2478b7f0f059608a492dd0a5

Description

Alcotest exposes simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run.

Published: 01 Oct 2025

README

A lightweight and colourful test framework.


Alcotest exposes a simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run. See the manpage for details.

The API documentation can be found here. For information on contributing to Alcotest, see CONTRIBUTING.md.

OCaml-CI Build Status Alcotest Documentation


Examples

A simple example (taken from examples/simple.ml):

Generated by the following test suite specification:

(* Build with `ocamlbuild -pkg alcotest simple.byte` *)

(* A module with functions to test *)
module To_test = struct
  let lowercase = String.lowercase_ascii
  let capitalize = String.capitalize_ascii
  let str_concat = String.concat ""
  let list_concat = List.append
end

(* The tests *)
let test_lowercase () =
  Alcotest.(check string) "same string" "hello!" (To_test.lowercase "hELLO!")

let test_capitalize () =
  Alcotest.(check string) "same string" "World." (To_test.capitalize "world.")

let test_str_concat () =
  Alcotest.(check string) "same string" "foobar" (To_test.str_concat ["foo"; "bar"])

let test_list_concat () =
  Alcotest.(check (list int)) "same lists" [1; 2; 3] (To_test.list_concat [1] [2; 3])

(* Run it *)
let () =
  let open Alcotest in
  run "Utils" [
      "string-case", [
          test_case "Lower case"     `Quick test_lowercase;
          test_case "Capitalization" `Quick test_capitalize;
        ];
      "string-concat", [ test_case "String mashing" `Quick test_str_concat  ];
      "list-concat",   [ test_case "List mashing"   `Slow  test_list_concat ];
    ]

The result is a self-contained binary which displays the test results. Use dune exec examples/simple.exe -- --help to see the runtime options.

Here's an example of a of failing test suite:

By default, only the first failing test log is printed to the console (and all test logs are captured on disk). Pass --show-errors to print all error messages.

Using Alcotest with opam and Dune

Add (alcotest :with-test) to the depends stanza of your dune-project file, or "alcotest" {with-test} to your opam file. Use the with-test package variable to declare your tests opam dependencies. Call opam to install them:

$ opam install --deps-only --with-test .

You can then declare your test and link with Alcotest: (test (libraries alcotest …) …), and run your tests:

$ dune runtest

Selecting tests to execute

You can filter which tests to run by supplying a regular expression matching the names of the tests to execute, or by passing a regular expression and a comma-separated list of test numbers (or ranges of test numbers, e.g. 2,4..9):

$ ./simple.native test '.*concat*'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[SKIP]     string-case            1   Capitalization.
[OK]       string-concat          0   String mashing.
[OK]       list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 2 tests run.

$ ./simple.native test 'string-case' '1..3'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[OK]       string-case            1   Capitalization.
[SKIP]     string-concat          0   String mashing.
[SKIP]     list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 1 test run.

Note that you cannot filter by test case name (i.e. Lower case or Capitalization), you must filter by test name & number instead.

See the examples directory for more examples.

Quick and Slow tests

In general you should use `Quick tests: tests that are ran on any invocations of the test suite. You should only use `Slow tests for stress tests that are ran only on occasion (typically before a release or after a major change). These slow tests can be suppressed by passing the -q flag on the command line, e.g.:

$ ./test.exe -q # run only the quick tests
$ ./test.exe    # run quick and slow tests

Passing custom options to the tests

In most cases, the base tests are unit -> unit functions. However, it is also possible to pass an extra option to all the test functions by using 'a -> unit, where 'a is the type of the extra parameter.

In order to do this, you need to specify how this extra parameter is read on the command-line, by providing a Cmdliner term for command-line arguments which explains how to parse and serialize values of type 'a (note: do not use positional arguments, only optional arguments are supported).

For instance:

let test_nice i = Alcotest.(check int) "Is it a nice integer?" i 42

let int =
  let doc = "What is your preferred number?" in
  Cmdliner.Arg.(required & opt (some int) None & info ["n"] ~doc ~docv:"NUM")

let () =
  Alcotest.run_with_args "foo" int [
    "all", ["nice", `Quick, test_nice]
  ]

Will generate test.exe such that:

$ test.exe test
test.exe: required option -n is missing

$ test.exe test -n 42
Testing foo.
[OK]                all          0   int.

Lwt

Alcotest provides an Alcotest_lwt module that you could use to wrap Lwt test cases. The basic idea is that instead of providing a test function in the form unit -> unit, you provide one with the type unit -> unit Lwt.t and alcotest-lwt calls Lwt_main.run for you.

However, there are a couple of extra features:

  • If an async exception occurs, it will cancel your test case for you and fail it (rather than exiting the process).
  • You get given a switch, which will be turned off when the test case finishes (or fails). You can use that to free up any resources.

For instance:

let free () = print_endline "freeing all resources"; Lwt.return ()

let test_lwt switch () =
  Lwt_switch.add_hook (Some switch) free;
  Lwt.async (fun () -> failwith "All is broken");
  Lwt_unix.sleep 10.

let () =
  Lwt_main.run @@ Alcotest_lwt.run "foo" [
    "all", [
      Alcotest_lwt.test_case "one" `Quick test_lwt
    ]
  ]

Will generate:

$ test.exe
Testing foo.
[ERROR]             all          0   one.
-- all.000 [one.] Failed --
in _build/_tests/all.000.output:
freeing all resources
[failure] All is broken

Comparison with other testing frameworks

The README is pretty clear about that:

Alcotest is the only testing framework using colors!

More seriously, Alcotest is similar to ounit but it fixes a few of the problems found in that library:

  • Alcotest has a nicer output, it is easier to see what failed and what succeeded and to read the log outputs of the failed tests;
  • Alcotest uses combinators to define pretty-printers and comparators between the things to test.

Other nice tools doing different kind of testing also exist:

  • qcheck does random generation and property testing (e.g. Quick Check);
  • crowbar and bun are similar to qcheck, but use compiler-directed randomness, i.e. they take advantage of the AFL support the OCaml compiler;
  • ppx_inline_tests allows to write tests in the same file as your source-code; they will be run only in a special mode of compilation.

Dependencies (9)

  1. ocaml-syntax-shims
  2. uutf >= "1.0.1"
  3. stdlib-shims
  4. re >= "1.7.2"
  5. cmdliner >= "1.2.0"
  6. astring
  7. fmt >= "0.8.7"
  8. ocaml >= "4.08"
  9. dune >= "3.0"

Dev Dependencies (1)

  1. odoc with-doc

  1. ahrocksdb
  2. albatross >= "1.5.4"
  3. alcobar
  4. alcotest-async >= "1.9.1"
  5. alcotest-js >= "1.9.1"
  6. alcotest-lwt >= "1.9.1"
  7. alcotest-mirage >= "1.9.1"
  8. alg_structs_qcheck
  9. algaeff
  10. ambient-context
  11. ambient-context-eio
  12. ambient-context-lwt
  13. angstrom >= "0.7.0"
  14. ansi >= "0.6.0"
  15. anycache >= "0.7.4"
  16. anycache-lwt
  17. arc
  18. archetype >= "1.4.2"
  19. archi
  20. arp
  21. arrakis < "1.1.0"
  22. art
  23. asai
  24. asak
  25. asli >= "0.2.0"
  26. asn1-combinators >= "0.2.5"
  27. atd >= "2.3.3"
  28. atdgen >= "2.10.0"
  29. atdpy
  30. atdts
  31. avro-simple
  32. awskit
  33. awskit-eio
  34. awskit-lwt
  35. awskit-lwt-unix
  36. awskit-s3
  37. awskit-s3-eio
  38. awskit-s3-lwt
  39. awskit-s3-lwt-unix
  40. awskit-s3-sim
  41. azure-cosmos-db-eio
  42. backoff
  43. base32
  44. base64 >= "2.1.2" & < "3.2.0" | >= "3.4.0"
  45. bastet
  46. bastet_lwt
  47. bech32
  48. bechamel >= "0.5.0"
  49. bigarray-overlap
  50. bigstringaf
  51. biotk >= "0.4"
  52. bitlib
  53. bizowie-api
  54. blake2
  55. bloomf
  56. bls12-381 < "0.4.1" | >= "3.0.0" & < "18.0"
  57. bls12-381-hash
  58. bls12-381-js >= "0.4.2"
  59. bls12-381-js-gen >= "0.4.2"
  60. bls12-381-legacy
  61. bls12-381-signature
  62. bls12-381-unix
  63. blurhash
  64. bm25
  65. brisk-reconciler
  66. builder-web
  67. bytebuffer
  68. ca-certs
  69. ca-certs-nss
  70. cabal
  71. cachet
  72. cachet-lwt
  73. cachet-solo5
  74. cactus
  75. caldav
  76. calendar >= "3.0.0"
  77. calendars >= "2.0.0"
  78. callipyge
  79. camlix
  80. camlkit
  81. camlkit-base
  82. capnp-rpc
  83. capnp-rpc-unix
  84. caqti >= "1.7.0"
  85. caqti-async >= "1.7.0"
  86. caqti-driver-mariadb >= "1.7.0"
  87. caqti-driver-postgresql >= "1.7.0"
  88. caqti-driver-sqlite3 >= "1.7.0"
  89. caqti-dynload = "2.0.1"
  90. caqti-eio
  91. caqti-lwt >= "1.7.0"
  92. caqti-miou
  93. carray
  94. carton < "1.0.0"
  95. carton-git
  96. carton-lwt >= "0.4.3" & < "1.0.0"
  97. catala >= "0.6.0"
  98. cborl
  99. cf-lwt
  100. chacha
  101. chamelon
  102. chamelon-unix
  103. charrua-client
  104. charrua-server
  105. checked_oint
  106. checkseum >= "0.0.3"
  107. cid
  108. clarity-lang
  109. class_group_vdf
  110. cohttp
  111. cohttp-curl-async
  112. cohttp-curl-lwt
  113. cohttp-eio >= "6.0.0~beta2"
  114. colombe >= "0.2.0"
  115. color
  116. commons
  117. conan
  118. conan-cli
  119. conan-database
  120. conan-lwt
  121. conan-unix
  122. conex < "0.10.0"
  123. conex-mirage-crypto
  124. conformist
  125. contract
  126. cookie
  127. corosync
  128. cow >= "2.2.0"
  129. crockford
  130. css
  131. css-parser
  132. cstruct
  133. cstruct-sexp
  134. ctypes-zarith
  135. cuid
  136. cure2
  137. curly
  138. current
  139. current-albatross-deployer
  140. current_git >= "0.7.1"
  141. current_incr
  142. current_rpc >= "0.7.4"
  143. data-encoding
  144. dates_calc
  145. dbase4
  146. decimal >= "0.3.0"
  147. decompress
  148. depyt
  149. digestif >= "0.9.0"
  150. dispatch >= "0.4.1"
  151. dkim
  152. dkim-bin
  153. dkim-mirage
  154. dkml-dune-dsl-show
  155. dkml-install
  156. dkml-install-installer
  157. dkml-install-runner
  158. dmarc
  159. dns >= "4.4.1"
  160. dns-cli
  161. dns-client >= "4.6.3"
  162. dns-forward-lwt-unix
  163. dns-resolver
  164. dns-server
  165. dns-tsig
  166. dnssd
  167. dnssec
  168. docfd >= "13.0.0"
  169. dockerfile >= "8.2.7"
  170. dockerfile-opam >= "8.3.4"
  171. domain-local-await >= "0.2.1"
  172. domain-local-timeout
  173. domain-name
  174. dream
  175. dream-htmx
  176. dream-pure
  177. dscheck >= "0.1.1"
  178. duff
  179. dune-deps >= "1.4.0"
  180. dune-release >= "1.0.0"
  181. duration
  182. echo
  183. ecma-regex
  184. eio < "0.12"
  185. eio_linux
  186. eio_windows
  187. emile
  188. encore
  189. eqaf >= "0.5"
  190. equinoxe
  191. equinoxe-cohttp
  192. equinoxe-hlc
  193. ezgzip
  194. ezjsonm
  195. ezjsonm-lwt
  196. ezlua
  197. FPauth
  198. FPauth-core
  199. FPauth-responses
  200. FPauth-strategies
  201. faraday != "0.2.0"
  202. farfadet
  203. fat-filesystem
  204. fehu < "1.0.0~alpha3"
  205. ff
  206. ff-pbt
  207. flex-array
  208. flux
  209. fluxt
  210. forcamla
  211. forester >= "5.0"
  212. fsevents-lwt
  213. functoria
  214. fungi
  215. geojson
  216. geoml >= "0.1.1"
  217. git
  218. git-cohttp
  219. git-cohttp-unix
  220. git-kv != "0.1.3"
  221. git-mirage
  222. git-net
  223. git-split
  224. git-unix
  225. gitlab-unix
  226. glicko2
  227. gmap
  228. gobba
  229. gpt
  230. graphql
  231. graphql-async
  232. graphql-cohttp >= "0.13.0"
  233. graphql-lwt
  234. graphql_parser != "0.11.0"
  235. graphql_ppx
  236. guardian >= "0.4.0"
  237. h1
  238. h1_parser
  239. h2
  240. hacl
  241. hacl-star >= "0.6.0"
  242. hacl_func
  243. hacl_x25519
  244. handlebars-ml >= "0.2.1"
  245. highlexer
  246. hkdf
  247. hockmd
  248. html_of_jsx
  249. http
  250. http-multipart-formdata < "2.0.0"
  251. httpaf >= "0.2.0"
  252. httpcats
  253. httpun
  254. httpun-ws
  255. hugin < "1.0.0~alpha3"
  256. huml
  257. hvsock
  258. icalendar
  259. idna
  260. imagelib
  261. index
  262. inferno >= "20220603"
  263. influxdb-async
  264. influxdb-lwt
  265. inquire < "0.2.0"
  266. intel_hex >= "0.3"
  267. interval-map
  268. iomux
  269. irmin
  270. irmin-bench
  271. irmin-chunk
  272. irmin-cli
  273. irmin-containers
  274. irmin-fs
  275. irmin-git
  276. irmin-graphql
  277. irmin-pack
  278. irmin-pack-tools
  279. irmin-test != "3.6.1"
  280. irmin-tezos
  281. irmin-unix
  282. irmin-watcher
  283. jekyll-format
  284. jose
  285. json-data-encoding >= "0.9"
  286. json-data-encoding-bson >= "1.1.1"
  287. json_decoder
  288. jsonfeed
  289. jsonschema-core
  290. jsonschema-validation
  291. jsonxt
  292. junit_alcotest >= "2.2.0"
  293. jwto
  294. kaun < "1.0.0~alpha3"
  295. kcas >= "0.6.0"
  296. kcas_data >= "0.6.0"
  297. kdf
  298. ke >= "0.2"
  299. kkmarkdown
  300. kmt
  301. lambda-runtime
  302. lambda_streams
  303. lambda_streams_async
  304. lambdapi
  305. layoutz
  306. letters
  307. liquid_ml >= "0.1.3"
  308. lmdb >= "1.0"
  309. lockfree >= "0.3.1"
  310. logical
  311. logtk
  312. lp
  313. lp-glpk
  314. lp-glpk-js < "0.5.0"
  315. lp-gurobi < "0.5.0"
  316. lru
  317. lt-code
  318. luv
  319. mazeppa
  320. mbr-format
  321. mdx
  322. mec
  323. mechaml >= "1.2.1"
  324. mel-bastet
  325. menhir-lsp >= "0.3.3"
  326. merlin = "4.17.1-501"
  327. merlin-lib >= "4.17.1-501"
  328. metrics
  329. mfat
  330. miaou-core
  331. middleware
  332. migra
  333. mimic
  334. minicaml = "0.3.1" | >= "0.4"
  335. mirage >= "4.0.0"
  336. mirage-block-partition
  337. mirage-block-ramdisk
  338. mirage-channel >= "4.0.1"
  339. mirage-crypto-ec
  340. mirage-flow-unix
  341. mirage-kv >= "2.0.0"
  342. mirage-kv-mem >= "4.0.1"
  343. mirage-kv-unix >= "3.0.0"
  344. mirage-logs
  345. mirage-nat
  346. mirage-net-unix
  347. mirage-runtime < "4.7.0"
  348. mirage-tc
  349. mjson
  350. mlgpx
  351. mmdb < "0.3.0"
  352. mnd
  353. mqtt
  354. mrmime >= "0.2.0"
  355. msgpck >= "1.6"
  356. mssql
  357. multibase
  358. multicore-magic
  359. multihash
  360. multihash-digestif
  361. multipart-form-data
  362. multipart_form
  363. multipart_form-eio
  364. multipart_form-lwt
  365. multipart_form-miou
  366. named-pipe
  367. nanoid
  368. nbd >= "4.0.3"
  369. nbd-tool
  370. nel
  371. neo4j_bolt
  372. nloge
  373. nocoiner
  374. non_empty_list
  375. nx < "1.0.0~alpha3"
  376. nx-datasets
  377. nx-text
  378. OCADml >= "0.6.0"
  379. obatcher
  380. object
  381. ocaml-ai-sdk
  382. ocaml-index < "5.4.1-503"
  383. ocaml-r >= "0.4.0"
  384. ocaml-version >= "3.5.0"
  385. ocamlformat < "0.25.1"
  386. ocamlformat-lib
  387. ocamlformat-mlx-lib
  388. ocamlformat-rpc < "removed"
  389. ocamline
  390. ocgtk
  391. ochre
  392. ochre-cli
  393. ocluster
  394. ocue
  395. odoc < "2.1.1"
  396. oenv >= "0.1.0"
  397. ohex
  398. oidc
  399. oktree >= "0.2.4"
  400. opam-0install
  401. opam-0install-cudf >= "0.5.0"
  402. opam-compiler
  403. opam-file-format >= "2.1.1"
  404. opam-repomin
  405. opencage
  406. opentelemetry >= "0.6"
  407. opentelemetry-client
  408. opentelemetry-client-cohttp-eio
  409. opentelemetry-client-cohttp-lwt >= "0.6"
  410. opentelemetry-client-ocurl >= "0.6"
  411. opentelemetry-client-ocurl-lwt
  412. opentelemetry-cohttp-lwt >= "0.6"
  413. opentelemetry-logs
  414. opentelemetry-lwt >= "0.6"
  415. opium
  416. opium-graphql
  417. opium-testing
  418. opium_kernel
  419. orewa
  420. orgeat
  421. ortac-core
  422. ortac-wrapper
  423. osnap < "0.3.0"
  424. osx-acl
  425. osx-attr
  426. osx-cf
  427. osx-fsevents
  428. osx-membership
  429. osx-mount
  430. osx-xattr
  431. otoggl
  432. owl >= "0.7.0" & != "0.9.0" & != "1.0.0"
  433. owl-base < "0.5.0"
  434. owl-ode >= "0.1.0" & != "0.2.0"
  435. owl-symbolic
  436. par_incr
  437. parseff
  438. passe
  439. passmaker
  440. patch
  441. pbkdf
  442. pecu >= "0.2"
  443. pf-qubes
  444. pg_query >= "0.9.6"
  445. pgx
  446. pgx_unix
  447. pgx_value_core
  448. pgx_value_ptime
  449. phylogenetics
  450. piaf
  451. picos < "0.5.0"
  452. picos_meta
  453. piece_rope
  454. plebeia >= "2.0.0"
  455. polyglot
  456. polymarket
  457. polynomial
  458. ppx_blob >= "0.3.0"
  459. ppx_catch
  460. ppx_deriving_cmdliner
  461. ppx_deriving_ezjsonm
  462. ppx_deriving_qcheck
  463. ppx_deriving_rpc
  464. ppx_deriving_yaml
  465. ppx_ezlua
  466. ppx_inline_alcotest
  467. ppx_map
  468. ppx_marshal
  469. ppx_mica
  470. ppx_parser
  471. ppx_protocol_conv
  472. ppx_protocol_conv_json
  473. ppx_protocol_conv_jsonm
  474. ppx_protocol_conv_msgpack
  475. ppx_protocol_conv_xml_light
  476. ppx_protocol_conv_xmlm
  477. ppx_protocol_conv_yaml
  478. ppx_repr
  479. ppx_subliner
  480. ppx_units
  481. ppx_yojson >= "1.1.0"
  482. pratter
  483. prbnmcn-ucb1 >= "0.0.2"
  484. prc
  485. preface
  486. pretty_expressive
  487. prettym
  488. proc-smaps
  489. producer
  490. progress
  491. prom
  492. prometheus < "1.2"
  493. prometheus-app
  494. protocell
  495. protocol-9p < "0.11.0" | >= "0.11.2"
  496. protocol-9p-unix
  497. proton
  498. psq
  499. public-suffix
  500. purl
  501. pxshot
  502. pyast
  503. qcaml
  504. qcheck >= "0.25"
  505. qcheck-alcotest
  506. qcheck-core >= "0.25"
  507. qcow-stream >= "0.13.0"
  508. qcow-tool = "0.13.0"
  509. qcow-types = "0.13.0"
  510. qdrant
  511. query-json
  512. quickjs
  513. quill < "1.0.0~alpha3"
  514. randii
  515. reason-standard
  516. red-black-tree
  517. reparse >= "2.0.0" & < "3.0.0"
  518. reparse-unix < "2.1.0"
  519. resp
  520. resp-unix >= "0.10.0"
  521. resto >= "0.9"
  522. rfc1951 < "1.0.0"
  523. routes < "2.0.0"
  524. rpc
  525. rpclib
  526. rpclib-async
  527. rpclib-lwt
  528. rpmfile < "0.3.0"
  529. rpmfile-eio
  530. rpmfile-unix
  531. rune < "1.0.0~alpha3"
  532. runtime_events_tools >= "0.5.2"
  533. SZXX >= "4.0.0"
  534. saga
  535. salsa20
  536. salsa20-core
  537. sanddb >= "0.2"
  538. saturn != "0.4.1"
  539. saturn_lockfree != "0.4.1"
  540. scrypt-kdf
  541. secp256k1 >= "0.4.1"
  542. secp256k1-internal
  543. semver >= "0.2.1"
  544. sendmail
  545. sendmail-lwt
  546. sendmail-miou-unix
  547. sendmail-mirage
  548. sendmsg
  549. seqes
  550. server-reason-react
  551. session-cookie
  552. session-cookie-async
  553. session-cookie-lwt
  554. sha256-cng
  555. shakuhachi
  556. sherlodoc
  557. sihl < "0.2.0"
  558. sihl-type
  559. slug
  560. smaws-clients
  561. smaws-lib
  562. smol
  563. smol-helpers
  564. sodium-fmt
  565. solidity-alcotest
  566. sowilo < "1.0.0~alpha3"
  567. spdx_licenses
  568. spectrum >= "0.2.0"
  569. spectrum_capabilities
  570. spectrum_palette_ppx
  571. spectrum_palettes
  572. spectrum_tools
  573. spin >= "0.7.0"
  574. spurs < "0.1.1"
  575. squirrel
  576. ssh-agent
  577. ssl >= "0.6.0"
  578. starred_ml
  579. stem
  580. stramon-lib
  581. stringx
  582. styled-ppx
  583. swapfs
  584. symex >= "0.2"
  585. symphony-orchestrator-tui
  586. synchronizer >= "0.2"
  587. syslog-rfc5424
  588. syto
  589. tabr
  590. talon < "1.0.0~alpha3"
  591. tar-eio >= "3.5.0"
  592. tar-mirage
  593. tbls
  594. tcpip
  595. tdigest < "2.1.0"
  596. term-indexing
  597. term-tools
  598. terminal
  599. terminal_size >= "0.1.1"
  600. terminus
  601. terminus-cohttp
  602. terminus-hlc
  603. terml
  604. testo
  605. testo-lwt
  606. textmate-language >= "0.3.0"
  607. textrazor
  608. thread-table
  609. timedesc
  610. timere
  611. timmy
  612. timmy-jsoo
  613. timmy-lwt
  614. timmy-unix
  615. tls >= "0.12.8"
  616. toc
  617. topojson
  618. topojsone
  619. trail
  620. traits
  621. transept
  622. tsort >= "2.2.0"
  623. twostep
  624. type_eq
  625. type_id
  626. typeid >= "1.0.1"
  627. tyre >= "0.4"
  628. tyxml >= "4.2.0"
  629. tyxml-jsx
  630. tyxml-ppx >= "4.3.0"
  631. tyxml-syntax
  632. uecc
  633. ulid
  634. universal-portal
  635. unix-dirent
  636. unix-errno
  637. unix-sys-resource
  638. unix-sys-stat
  639. unix-time
  640. unstrctrd
  641. uring < "0.4"
  642. user-agent-parser
  643. uspf
  644. uspf-lwt
  645. uspf-mirage
  646. uspf-unix
  647. utcp
  648. utop >= "2.13.0"
  649. validate
  650. validator
  651. valkey
  652. vercel
  653. vhd-format-lwt >= "0.13.0"
  654. wayland >= "2.0"
  655. wcwidth
  656. websocketaf
  657. wire
  658. x509 >= "0.7.0"
  659. xapi-rrd
  660. xapi-stdext-date
  661. xapi-stdext-encodings
  662. xapi-stdext-std >= "4.16.0"
  663. xdge
  664. xkbcommon
  665. yaml
  666. yaml-sexp
  667. yocaml
  668. yocaml_syndication >= "2.0.0"
  669. yocaml_yaml < "2.0.0"
  670. yojson >= "1.6.0"
  671. yojson-five
  672. yuscii >= "0.3.0"
  673. yuujinchou >= "1.0.0"
  674. zar
  675. zed >= "3.2.2"
  676. zlist < "0.4.0"

Conflicts (2)

  1. js_of_ocaml-compiler < "5.8"
  2. result < "1.5"