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 < "0.2.0"
  36. awskit-s3
  37. awskit-s3-eio < "0.2.0"
  38. awskit-s3-lwt < "0.2.0"
  39. awskit-s3-lwt-unix < "0.2.0"
  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. hegel
  246. highlexer
  247. hkdf
  248. hockmd
  249. html_of_jsx
  250. http
  251. http-multipart-formdata < "2.0.0"
  252. httpaf >= "0.2.0"
  253. httpcats
  254. httpun
  255. httpun-ws
  256. hugin < "1.0.0~alpha3"
  257. huml
  258. hvsock
  259. icalendar
  260. idna
  261. imagelib
  262. index
  263. inferno >= "20220603"
  264. influxdb-async
  265. influxdb-lwt
  266. inquire < "0.2.0"
  267. intel_hex >= "0.3"
  268. interval-map
  269. iomux
  270. irmin
  271. irmin-bench
  272. irmin-chunk
  273. irmin-cli
  274. irmin-containers
  275. irmin-fs
  276. irmin-git
  277. irmin-graphql
  278. irmin-pack
  279. irmin-pack-tools
  280. irmin-test != "3.6.1"
  281. irmin-tezos
  282. irmin-unix
  283. irmin-watcher
  284. jekyll-format
  285. jose
  286. json-data-encoding >= "0.9"
  287. json-data-encoding-bson >= "1.1.1"
  288. json_decoder
  289. jsonfeed
  290. jsonschema-core
  291. jsonschema-validation
  292. jsonxt
  293. junit_alcotest >= "2.2.0"
  294. jwto
  295. kaun < "1.0.0~alpha3"
  296. kcas >= "0.6.0"
  297. kcas_data >= "0.6.0"
  298. kdf
  299. ke >= "0.2"
  300. kkmarkdown
  301. kmt
  302. lambda-runtime
  303. lambda_streams
  304. lambda_streams_async
  305. lambdapi
  306. layoutz
  307. letters
  308. liquid_ml >= "0.1.3"
  309. lmdb >= "1.0"
  310. lockfree >= "0.3.1"
  311. logical
  312. logtk
  313. lp
  314. lp-glpk
  315. lp-glpk-js < "0.5.0"
  316. lp-gurobi < "0.5.0"
  317. lru
  318. lt-code
  319. luv
  320. mazeppa
  321. mbr-format
  322. mdx
  323. mec
  324. mechaml >= "1.2.1"
  325. mel-bastet
  326. melange >= "7.0.0-51"
  327. melange-edn >= "0.5.0"
  328. menhir-lsp >= "0.3.3"
  329. menhirformat
  330. merlin = "4.17.1-501"
  331. merlin-lib >= "4.17.1-501"
  332. metrics
  333. mfat
  334. miaou-core
  335. middleware
  336. migra
  337. mimic
  338. minicaml = "0.3.1" | >= "0.4"
  339. mirage >= "4.0.0"
  340. mirage-block-partition
  341. mirage-block-ramdisk
  342. mirage-channel >= "4.0.1"
  343. mirage-crypto-ec
  344. mirage-flow-unix
  345. mirage-kv >= "2.0.0"
  346. mirage-kv-mem >= "4.0.1"
  347. mirage-kv-unix >= "3.0.0"
  348. mirage-logs
  349. mirage-nat
  350. mirage-net-unix
  351. mirage-runtime < "4.7.0"
  352. mirage-tc
  353. mjson
  354. mlgpx
  355. mmdb < "0.3.0"
  356. mnd
  357. mqtt
  358. mrmime >= "0.2.0"
  359. msgpck >= "1.6"
  360. mssql
  361. multibase
  362. multicore-magic
  363. multihash
  364. multihash-digestif
  365. multipart-form-data
  366. multipart_form
  367. multipart_form-eio
  368. multipart_form-lwt
  369. multipart_form-miou
  370. named-pipe
  371. nanoid
  372. nbd >= "4.0.3"
  373. nbd-tool
  374. nel
  375. neo4j_bolt
  376. nloge
  377. nocoiner
  378. non_empty_list
  379. nx < "1.0.0~alpha3"
  380. nx-datasets
  381. nx-text
  382. OCADml >= "0.6.0"
  383. obatcher
  384. object
  385. ocaml-ai-sdk
  386. ocaml-index < "5.4.1-503"
  387. ocaml-r >= "0.4.0"
  388. ocaml-version >= "3.5.0"
  389. ocamlformat < "0.25.1"
  390. ocamlformat-lib
  391. ocamlformat-mlx-lib
  392. ocamlformat-rpc < "removed"
  393. ocamline
  394. ocgtk
  395. ochre
  396. ochre-cli
  397. ocluster
  398. ocue
  399. odoc < "2.1.1"
  400. oenv >= "0.1.0"
  401. ohex
  402. oidc
  403. oktree >= "0.2.4"
  404. opam-0install
  405. opam-0install-cudf >= "0.5.0"
  406. opam-compiler
  407. opam-file-format >= "2.1.1"
  408. opam-repomin
  409. opencage
  410. opentelemetry >= "0.6"
  411. opentelemetry-client
  412. opentelemetry-client-cohttp-eio
  413. opentelemetry-client-cohttp-lwt >= "0.6"
  414. opentelemetry-client-ocurl >= "0.6"
  415. opentelemetry-client-ocurl-lwt
  416. opentelemetry-cohttp-lwt >= "0.6"
  417. opentelemetry-logs
  418. opentelemetry-lwt >= "0.6"
  419. opium
  420. opium-graphql
  421. opium-testing
  422. opium_kernel
  423. orewa
  424. orgeat
  425. ortac-core
  426. ortac-wrapper
  427. osnap < "0.3.0"
  428. osx-acl
  429. osx-attr
  430. osx-cf
  431. osx-fsevents
  432. osx-keychain
  433. osx-membership
  434. osx-mount
  435. osx-xattr
  436. otoggl
  437. owl >= "0.7.0" & != "0.9.0" & != "1.0.0"
  438. owl-base < "0.5.0"
  439. owl-ode >= "0.1.0" & != "0.2.0"
  440. owl-symbolic
  441. par_incr
  442. parseff
  443. passe
  444. passmaker
  445. patch
  446. pbkdf
  447. pecu >= "0.2"
  448. pf-qubes
  449. pg_query >= "0.9.6"
  450. pgx
  451. pgx_unix
  452. pgx_value_core
  453. pgx_value_ptime
  454. phylogenetics
  455. piaf
  456. picos < "0.5.0"
  457. picos_meta
  458. pidgin
  459. piece_rope
  460. plebeia >= "2.0.0"
  461. polyglot
  462. polymarket
  463. polynomial
  464. ppx_blob >= "0.3.0"
  465. ppx_catch
  466. ppx_deriving_cmdliner
  467. ppx_deriving_ezjsonm
  468. ppx_deriving_qcheck
  469. ppx_deriving_rpc
  470. ppx_deriving_yaml
  471. ppx_ezlua
  472. ppx_hegel_generator
  473. ppx_hegel_test
  474. ppx_inline_alcotest
  475. ppx_map
  476. ppx_marshal
  477. ppx_mica
  478. ppx_parser
  479. ppx_protocol_conv
  480. ppx_protocol_conv_json
  481. ppx_protocol_conv_jsonm
  482. ppx_protocol_conv_msgpack
  483. ppx_protocol_conv_xml_light
  484. ppx_protocol_conv_xmlm
  485. ppx_protocol_conv_yaml
  486. ppx_repr
  487. ppx_subliner
  488. ppx_units
  489. ppx_yojson >= "1.1.0"
  490. pratter
  491. prbnmcn-ucb1 >= "0.0.2"
  492. prc
  493. preface
  494. pretty_expressive
  495. prettym
  496. proc-smaps
  497. producer
  498. progress
  499. prom
  500. prometheus < "1.2"
  501. prometheus-app
  502. protocell
  503. protocol-9p < "0.11.0" | >= "0.11.2"
  504. protocol-9p-unix
  505. proton
  506. psq
  507. public-suffix
  508. purl
  509. pxshot
  510. pyast
  511. qcaml
  512. qcheck >= "0.25"
  513. qcheck-alcotest
  514. qcheck-core >= "0.25"
  515. qcow-stream >= "0.13.0"
  516. qcow-tool = "0.13.0"
  517. qcow-types = "0.13.0"
  518. qdrant
  519. query-json
  520. quickjs
  521. quill < "1.0.0~alpha3"
  522. randii
  523. reason-standard
  524. red-black-tree
  525. reparse >= "2.0.0" & < "3.0.0"
  526. reparse-unix < "2.1.0"
  527. resp
  528. resp-unix >= "0.10.0"
  529. resto >= "0.9"
  530. rfc1951 < "1.0.0"
  531. routes < "2.0.0"
  532. rpc
  533. rpclib
  534. rpclib-async
  535. rpclib-lwt
  536. rpmfile < "0.3.0"
  537. rpmfile-eio
  538. rpmfile-unix
  539. rune < "1.0.0~alpha3"
  540. runtime_events_tools >= "0.5.2"
  541. SZXX >= "4.0.0"
  542. saga
  543. salsa20
  544. salsa20-core
  545. sanddb >= "0.2"
  546. saturn != "0.4.1"
  547. saturn_lockfree != "0.4.1"
  548. scrypt-kdf
  549. secp256k1 >= "0.4.1"
  550. secp256k1-internal
  551. semver >= "0.2.1"
  552. sendmail
  553. sendmail-lwt
  554. sendmail-miou-unix
  555. sendmail-mirage
  556. sendmsg
  557. seqes
  558. server-reason-react
  559. session-cookie
  560. session-cookie-async
  561. session-cookie-lwt
  562. sha256-cng
  563. shakuhachi
  564. sherlodoc
  565. sihl < "0.2.0"
  566. sihl-type
  567. slug
  568. smaws-clients
  569. smaws-lib
  570. smol
  571. smol-helpers
  572. sodium-fmt
  573. solidity-alcotest
  574. soteria
  575. sowilo < "1.0.0~alpha3"
  576. spdx_licenses
  577. spectrum >= "0.2.0"
  578. spectrum_capabilities
  579. spectrum_palette_ppx
  580. spectrum_palettes
  581. spectrum_tools
  582. spin >= "0.7.0"
  583. spurs < "0.1.1"
  584. squirrel
  585. ssh-agent
  586. ssl >= "0.6.0"
  587. starred_ml
  588. stem
  589. stramon-lib
  590. stringx
  591. styled-ppx
  592. swapfs
  593. symex >= "0.2"
  594. symphony-orchestrator-tui
  595. synchronizer >= "0.2"
  596. syslog-rfc5424
  597. syto
  598. tabr
  599. talon < "1.0.0~alpha3"
  600. tar-eio >= "3.5.0"
  601. tar-mirage
  602. tbls
  603. tcpip
  604. tdigest < "2.1.0"
  605. term-indexing
  606. term-tools
  607. terminal
  608. terminal_size >= "0.1.1"
  609. terminus
  610. terminus-cohttp
  611. terminus-hlc
  612. terml
  613. testo
  614. testo-lwt
  615. textmate-language >= "0.3.0"
  616. textrazor
  617. thread-table
  618. timedesc
  619. timere
  620. timmy
  621. timmy-jsoo
  622. timmy-lwt
  623. timmy-unix
  624. tls >= "0.12.8"
  625. toc
  626. topojson
  627. topojsone
  628. trail
  629. traits
  630. transept
  631. tsort >= "2.2.0"
  632. twostep
  633. type_eq
  634. type_id
  635. typeid >= "1.0.1"
  636. tyre >= "0.4"
  637. tyxml >= "4.2.0"
  638. tyxml-jsx
  639. tyxml-ppx >= "4.3.0"
  640. tyxml-syntax
  641. uecc
  642. ulid
  643. universal-portal
  644. unix-dirent
  645. unix-errno
  646. unix-sys-resource
  647. unix-sys-stat
  648. unix-time
  649. unstrctrd
  650. uring < "0.4"
  651. user-agent-parser
  652. uspf
  653. uspf-lwt
  654. uspf-mirage
  655. uspf-unix
  656. utcp
  657. utop >= "2.13.0"
  658. validate
  659. validator
  660. valkey
  661. vercel
  662. vhd-format-lwt >= "0.13.0"
  663. wayland >= "2.0"
  664. wcwidth
  665. websocketaf
  666. wire
  667. x509 >= "0.7.0"
  668. xapi-rrd
  669. xapi-stdext-date
  670. xapi-stdext-encodings
  671. xapi-stdext-std >= "4.16.0"
  672. xdge
  673. xkbcommon
  674. yaml
  675. yaml-sexp
  676. yocaml
  677. yocaml_syndication >= "2.0.0"
  678. yocaml_yaml < "2.0.0"
  679. yojson >= "1.6.0"
  680. yojson-five
  681. yuscii >= "0.3.0"
  682. yuujinchou >= "1.0.0"
  683. zar
  684. zed >= "3.2.2"
  685. zlist < "0.4.0"

Conflicts (2)

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