Standing on the shoulders of the OCaml community
araara is a small thing standing on a large foundation. Every capability on this site exists because of libraries written, maintained, and given away freely by the OCaml community — their code, their knowledge, and their hard-won know-how.
Below are the libraries we depend on directly, and the ones they in turn build on; each name links to its package on the ocaml.org index. This list is generated from our dependencies, so it stays current. If we have miscredited anyone, the fault is ours and we would be glad to fix it.
With thanks
Direct dependencies (31)
The community libraries the araara stack declares directly — the ones our code names and a developer adds to their project.
And theirs
Indirect dependencies (44)
The libraries those direct dependencies in turn build on. Every one is part of what makes araara work.
- ambient-context
- angstrom
- asn1-combinators
- astring
- backoff
- bos
- camlp-streams
- cmdliner
- ctypes
- domain-local-await
- domain-local-timeout
- domain-name
- duration
- eqaf
- ezjsonm
- fpath
- gmap
- hex
- hmap
- iomux
- ipaddr
- jsonm
- kdf
- lwt
- macaddr
- multicore-magic
- ocplib-endian
- ohex
- opentelemetry
- optint
- parsexp
- pbrt
- pbrt_yojson
- ppx_derivers
- ppxlib
- psq
- rresult
- sexplib
- stringext
- thread-table
- tyxml
- uring
- uutf
- zarith
Beyond the dependencies
Inspiration and prior art
A framework is more than the libraries it links against. Parts of the araara stack were built by reading — and sometimes reimplementing — work that came before it: hcs's HTTP/1.1 and HTTP/2 servers were written by studying the OCaml community's existing protocol implementations; its router takes its shape from an earlier routing library; and repodb's data layer learned from the design of a clean database abstraction and the bindings it ultimately rests on.
Not all of these are dependencies — some we studied rather than linked against — but araara would not have its current shape without the knowledge their authors shared in the open. To everyone whose work taught us something: thank you.
Lineage
Ideas from Elixir and Phoenix
araara's shape did not come from nowhere. Its contexts that hold the domain logic, its thin controllers, its server-rendered views, and its conventions over configuration are borrowed openly from Elixir's Phoenix — which showed that a productive, batteries-included web framework can sit on a concurrent, functional runtime without giving up clarity. araara reaches for the same on OCaml 5 and its effects-based concurrency, and repodb's changesets echo Ecto's.
To José Valim and the Elixir community, and Chris McCord and the Phoenix team: thank you for charting so much of this territory.