A curated list of awesome OCaml tools, frameworks, libraries and articles.
Fork and create a Pull Request to contribute!
(Inspired by awesome-python. Discover more awesomeness.)
- Tools
- Web Development
- Database Drivers
- Concurrency
- Graphics
- Metaprogramming
- Language-related
- Data Serialization
- Text Processing
- Books
- Online Courses
- General
- OPAM – A flexible Git-friendly package manager with multiple compiler support.
- utop – Universal toplevel for OCaml with support of multiline edition, history, real-time and context sensitive completion, colors, and more.
- Oasis - A tool to integrate a configure, build and install system in your OCaml project. It helps to create standard entry points in your build system and allows external tools to analyse your project easily.
- Assemblage – A collection of tools to manage the configuration of OCaml projects.
- obuild – Simple package build system for ocaml.
- Cmdliner – Declarative definition of command line interfaces for OCaml.
- Frameworks:
- Opium – Sinatra like web toolkit for OCaml.
- Eliom – Eliom is a framework for programming web sites and client/server web applications. It uses very new concepts making programming very different from all other web programming tools, and allowing to write a complex web site in very few lines of code.
- Ohm – Ohm is a web framework for the OCaml language.
- Tools:
- COW – Caml on the Web (COW) is a set of parsers and syntax extensions to let you manipulate HTML, CSS, XML, JSON and Markdown directly from OCaml code.
- js_of_ocaml – Js_of_ocaml is a compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser.
- Open Source Projecs:
- Cumulus – Hacker news like website with the OCaml framework Ocsigen
- Mongo.ml – An OCaml driver for Mongodb
- Macaque - Macaque is a library for safe and flexible database queries using comprehensions.
- PG'OCaml - PG'OCaml provides an interface to PostgreSQL databases for OCaml applications.
- What is the state of OCaml's parallelization abilities?
- Developing Applications With Objective Caml – Concurrent Programming
- OCaml polymorphism example other than template function?
- Ocaml - polymorphic print and type losing
- Higher-Rank Polymorphism in OCaml
- mikmatch – OCaml pattern-matching extended with regexps
- http://caml.inria.fr/pub/ml-archives/ocaml-beginners/2003/11/b8036b7a0c1d082111d7a83c8f6dbfbb.en.html
- biniou – Extensible binary data format, like JSON but faster.
- easy-format – Pretty-printing library for OCaml.
- Real World OCaml by Y. Minsky, A. Madhavapeddy and J. Hickey - Functional programming for the masses.
- Unix System Programming in OCaml by X. Leroy and D. Rémy – Introduction to Unix system programming, with an emphasis on communications between processes.
- OCaml from the Very Beginning by J. Whitington - OCaml from the Very Beginning will appeal both to new programmers, and experienced programmers eager to explore functional languages such as OCaml.