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 Tools
- Concurrency
- Graphics
- Metaprogramming
- Language-related
- Serialization
- Data Processing
- Books
- Excises
- Community
- 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.
- obuild – Simple package build system for ocaml.
- Cmdliner – Declarative definition of command line interfaces for OCaml.
- ctypes – Library for binding to C libraries using pure OCaml.
- tuareg mode for emacs - An emacs mode enabling sytax highlighting for editing .ml
- merlin - Another emacs mode for OCaml, with more comprehensive support
- 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
- Syntax extensions without Camlp4: let's do it!
- MetaOCaml – an OCaml dialect for multi-stage 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.
- React – React is an OCaml module for functional reactive programming (FRP). It provides support to program with time varying values: declarative events and signals.
- 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.
- Pearls of Functional Algorithm Design by Richard Bird - It summaries 30 hard algorithm problems in function programming world. Although it is for Haskell, the algorithm problems are very interesting and trying to solve them in OCaml also helps the thinking of functional programming. Partial solutions in OCaml is here
- 99 problems. 99% solutions are here
- OCaml Planet – OCaml community feed aggregator.
- Official OCaml mailing list