Thank you to 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 libraries araara depends on directly — the ones our own code calls, and the ones you'd add to a project to build with it.

And theirs

Indirect dependencies (49)

The libraries our direct dependencies build on in turn. We never reach for these ourselves, but araara wouldn't run without them.

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.