Skip to content
72

Awesome OCaml

A curated collection of awesome OCaml tools, frameworks, libraries and articles.

3.1k stars175 forks366 entriesLast push Jun 15, 2026 (3 months ago)License none

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Community

Official OCaml Website

OCaml Discourse Web Forum

OCaml Discord Chat

Official OCaml Mailing List

OCaml Planet

OCaml SubReddit

Algorithms and Data Structures

Comparing a Machine Learning Algorithm Implemented in F# and OCaml

OCamlgraph

A generic graph library for OCaml.

ods

A large collection of data structures and algorithms for OCaml.

combine

OCaml library for combinatorics https://www.lri.fr/~filliatr/combine/.

Decompress

A pure OCaml implementation of Zlib.

Ke

Fast implementation of queue (FIFO) in OCaml.

Duff

Implementation of Rabin's fingerprint and delta compression by P. MacDonald in OCaml (same as libXdiff

ORaft

Library of Raft consensus algorithm implemented in OCaml

ODiff

Library of YIQ NTSC transmission image difference alghoritm implemented in OCaml and ReasonML.

In 2 lists

Application Libraries

Batteries Included

A community-maintained foundation library for your OCaml projects.

Cmdliner

Declarative definition of command line interfaces for OCaml.

In 2 lists

Core

Jane Street Capital's full-fledged standard library overlay. A portable subset of Core is also available: Core_kernel.

Base

Jane Street Capital's dependency-free, quick-compiling, fully-portable across any environment that can run OCaml code standard library.

React

React is an OCaml module for functional reactive programming (FRP). It provides support for programs with time-varying values, declarative events, and signals.

Minicli

Minimalist library for command-line parsing.

In 2 lists

easy-format

Pretty-printing library for OCaml.

ocaml-rpc

Light library to deal with RPCs in OCaml.

ocaml-containers

A lightweight, modular standard library extension, string library, and interfaces to various libraries (bigarrays, Unix, etc.) BSD license.

Benchmarking

core_bench

Micro-benchmarking library for OCaml by Jane Street. - Getting Started with Core_bench

benchmark

Benchmarking functions for measuring the run-time of functions using latency or throughput.

Blogs

Gagallium

In 2 lists

Type OCaml – Many things about OCaml

OCaml Platform

Drup's Thingies

Thomas Letan’s articles about OCaml

Books

More OCaml: Algorithms, Methods, and Diversions

In More OCaml, John Whitington takes a meandering tour of functional programming with OCaml, introducing various language features and describing some classic algorithms. The book ends with a large-scale example dealing with the production of PDF files. There are questions for each chapter, along…

How to Think Like a (Functional) Programmer

by Allen Downey and Nicholas Monje – How to Think Like a Computer Scientist is an introductory programming textbook based on the OCaml language. It is a modified version of Think Python by Allen Downey. It is intended for newcomers to programming and also those who know some programming but want…

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 summarizes 30 hard algorithmic problems in the 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 are here.

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 Systems Programming, with an emphasis on communications between processes.

Using, Understanding, and Unraveling OCaml

This book describes both the OCaml language and the theoretical grounds behind its powerful type system.

Purely Functional Data Structures

This is the first or only book focus on various data structures in FP world. A must-read one.

OCaml for Scientists

by Jon Harrop.

OCaml Programming: Correct + Efficient + Beautiful

Textbook on Functional Programming and Data Structures in OCaml - by Michael R. Clarkson et al.

Videos

OCaml Programming: Correct + Efficient + Beautiful

List of 200 bite-sized videos recorded by Michael R. Clarkson. It can be watched independently of the textbook titled the same and listed above in the Books section.

Code Analysis and Linters

Mascot

Mascot is a style-checker for OCaml sources.

pfff

pfff is a set of tools and APIs to perform some static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.

Infer

Infer is a static analyzer for Java, C and Objective-C

In 5 listsDetails

Frama-C

Frama-C is a static analysis and formal proof framework for C and C++.

flow

flow is a static type checker for JavaScript.

In 2 lists

SLAyer

SLAyer is an automatic formal verification tool that uses separation logic to verify memory safety of C programs.

MemCAD

MemCAD is an abstract interpreter for shape analysis. MemCAD can verify C programs manipulating complex data structures.

Camelot

Camelot is a modular and fully configurable OCaml linter and stylechecker.

coq-of-ocaml

Translator from OCaml to Coq to formally verify OCaml code.

MOPSA

MOPSA is a generic framework for building sound static analyzers based on the theory of abstract interpretation.

Program analysis

BAP

BAP is a reverse engineering and program analysis platform that targets binary programs.

In 3 lists

BinCat

BinCat is a binary code static analysis toolkit.

In 2 lists

cwe_checker

cwe_checker finds vulnerable patterns in binary executables.

In 5 listsDetails

Owi

Owi is a toolchain for working with WebAssembly (Wasm) in OCaml, featuring a powerful, parallel symbolic execution engine for Wasm. It also provides frontends for compiling and analyzing C and Rust programs.

In 4 listsDetails

Smt.ml

Smt.ml is a frontend OCaml library that interfaces with multiple SMT solvers, enabling seamless integration of solvers like Z3, cvc5, Colibri2, Bitwuzla, and Alt-Ergo within OCaml programs.

Compilers and Compiler Tools

Caramel

Caramel is a functional language for building type-safe, scalable, and maintainable applications.

cDuce

cDuce is a modern XML-oriented functional language with innovative features.

Compcert C Compiler

It is a C Compiler supporting most of the ISO C90 and C99 / ANSI C features.

In 2 lists

Eff Programming Language

Eff is a functional language with handlers of not only exceptions, but also of other computational effects such as state or I/O.

Hack Programming Language

A programming language for HHVM.

In 2 lists

Haxe Programming Language

Produce cross-platform native code. [GitHub]

In 2 lists

Neko Programming Language

Originally the compiler was written in OCaml.

In 2 lists

Mazeppa

A modern supercompiler for call-by-value functional languages.

Mezzo Programming Language

Mezzo is a programming language in the ML tradition, which places strong emphasis on the control of aliasing and access to mutable memory.

OCaml-Java

OCaml to Java bytecode compiler.

In 2 lists

Opa Programming Language

Rhine

A Lisp on LLVM written in OCaml.

Rust Programming Language

Originally written in OCaml before bootstrapping.

In 2 lists

Quick C-- Target Language

It is now a dead project. Github Repo. Alternative website.

tis-interpreter

An interpreter for finding subtle bugs in programs written in standard C

Reason

Friendly syntax & toolchain for OCaml by Facebook.

RaML

Resource Aware ML (RaML) is a tool that automatically and statically computes resource-use bounds for OCaml programs.

Liquid ML

Shopify's Liquid Templating language for OCaml.

Opal

Self-contained monadic parser combinators for OCaml.

Sedlex

is a modern, encoding-agnostic (read: Unicode-supporting) lexer generator (the ppx-based successor to ulex.)

Menhir

Menhir is a LR(1) parser generator for OCaml.; See ocaml-parsing for a clearer example of using Menhir and Sedlex to produce a useful parser,; ... and Obelisk, a neat project to produce readable LaTeX, HTML, or plain-text EBNF-style documentation for your grammar.

In 2 lists

ocamllex/ocamlyacc

lex and yacc implementation for OCaml.

Angstrom

Parser combinators built for speed and memory efficiency

Kaleidoscope: Implementing a Language with LLVM in Objective Caml¶

Concurrency

Eio

effects-based direct-style IO for multicore OCaml.

Miou

a simple scheduler for OCaml 5.

Lwt

A cooperative threads library for OCaml.

Async

A monadic concurrence library to go with the Core library.

The blog post that introduced Async

A user gives up on Async

Cooperative Concurrency in OCaml: A Core.Std.Async Example

.

Databases

Dbm

A binding to the NDBM/GDBM Unix "databases".

Mongo.ml

An OCaml driver for Mongodb

PG'OCaml

A type-safe interface to PostgreSQL in pure OCaml.

ppx_pgsql

A syntax extension for embedded SQL queries using PG'OCaml.

PostgreSQL-OCaml

An interface to PostgreSQL through the C API (libpq).

SQLite3

OCaml bindings to the SQLite3 database.

Sqlite3EZ

Thin wrapper for SQLite3 with a simplified interface.

ocaml-redis

Redis bindings for OCaml.

mariadb

Bindings to MariaDB/MySQL, supporting the nonblocking API

pgx

A pure OCaml PostgreSQL client library.

mysql_protocol

Implementation of MySQL Protocol with the Bitstring library.

Irmin

A distributed database that follows the same design principles as Git.

Obigstore

A database with BigTable-like data model atop LevelDB.

RunOrg

It is a WIP database server written in OCaml.

dokeysto

dumb OCaml key-value store, string keys and string values. Optional on-the-fly LZ4 compression of values or tokyocabinet backend.

Sequoia

Sequoia is a type-safe query builder for MySQL/MariaDB and PostgreSQL

Macaque

Macaque is a library for safe and flexible database queries using comprehensions on top of PG'OCaml.

ORM

ORM for SQLite.

Caqti

Cooperative-threaded access to relational data

Caqti setence preparation, ppx_rapper

Implementing the Binary Memcached Protocol with Ocaml and Bitstring

Interfacing OCaml and PostgreSQL with Caqti

Finally, Type-Safe, Extensible and Efficient Language Integrated Query

by Oleg and Co. The proposed approach is to describe SQL queries in type-safe manner and optimize them (using term rewriting or normalization-by evaluation) before sending to database engine. It potentially could optimize O(n^2) queries to O(n) ones.

Datetime

ISO8601

calendar

odate

ptime

Developer Tools

Try OCaml

Try OCaml in your web browser.

learn-ocaml

. Web app (written in OCaml) underlying the learn-ocaml-corpus. Can be customized to serve lectures (with Markdown slides), playgrounds (with a toplevel prelude), and interactive exercises (with OCaml tests). MIT License.

learn-ocaml.el

. Minor mode for Emacs that can display exercise topics and grade exercise solutions, after logging to a Learn-OCaml instance. MIT License.

BetterOCaml

An efficient, intuitive, and cross-platform web IDE with your OCaml code interpreted and running in your browser!

codingground

Compile and execute OCaml code online.

OCaml: Learn & Code iOS app

Learn and execute OCaml code from your iPhone/iPad/Mac.

Jupyter

An OCaml kernel for the Jupyter notebook.

utop

Universal toplevel for OCaml with support for multiline edition, history, real-time and context-sensitive completion, colors, and more.

ocamlformat

A command-line tool to format OCaml code.

ocamlbrowser

A source and compiled interface browser, written using LablTk. Included in the standard distribution for ocaml <= 4.01 and with labltk for ocaml >= 4.02.

ghim

A command-line tool to manage Github Issues.

OCaml Yeoman Generator

Yeoman generator to scaffold OCaml modules.

puml2xml

A PlantUML (.puml) to XML (.xmi) converter.

ctypes

Library for binding to C libraries using pure OCaml.

ocaml-main-program-in-c

Example build system for making mixed C/Ocaml binaries where the main program is in C.

Modular foreign function bindings

Py.ml

OCaml bindings for Python.

ocaml-lsp

An LSP language server for OCaml that integrates with any editor that understands LSP like VSCode, Vim and Emacs.

In 2 lists

merlin

Context sensitive completion for OCaml in Vim and Emacs.

tuareg

OCaml mode for Emacs that can run the toplevel and the debugger within Emacs.

opam-switch-mode

Minor mode for Emacs that extends Tuareg and Merlin with menus to change or reset the opam switch in the ambient Emacs session.

In 2 lists

merlin-eldoc

Emacs package to provide merlin's features through eldoc.

vscode-ocaml

extension that provides OCaml language support for VSCode

OCaml Debugger

extension that provides OCaml Debugger for VSCode

Sublime better ocaml

Better OCaml mode for Sublime Text.

Sublime text package

ocp-index

Easy access to the interface information of installed OCaml libraries. Provides standalone tools like ocp-browser and ocp-grep.

ocp-index-top

Toplevel directive for looking up documentation using ocp-index.

Sublime text package

ocp-indent

Indentation tool for OCaml, to be used from editors like Emacs and Vim.

Vim plugin

.

Bisect_ppx

Exercises and Short Examples

99 problems

. 99% of the solutions are here.

learn-ocaml-corpus

. Corpus of beginner-to-advanced online exercises (including those from the OCaml MOOC) with automatic grading tests.

In 2 lists

Rosetta Code

OCaml at Exercism

Exercism is your place to engage in thoughtful conversations about code. Explore simplicity, idiomatic language features, and expressive, readable code. Solutions.

Programming Language Examples Alike Cookbook

The OCaml section of the book is a free reference for solving common programming problems using OCaml.

Formal Software Verification

Coq

Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms, and theorems, together with an environment for semi-interactive development of machine-checked proofs.

In 3 lists

Why3

Why3 is a platform for deductive program verification. It provides a rich language for specification and programming, called WhyML, and relies on external theorem provers, both automated and interactive, to discharge verification conditions.

Alt-Ergo

Alt-Ergo is an open-source SMT solver dedicated to the proof of mathematical formulas generated in the context of program verification.

General

Functional Programming with OCaml

Python to OCaml: retrospective

OCaml for the Masses

Why We Use OCaml

Xen – OCaml Coding Considerations

Monads are a class of hard drugs

Beginner's guide to OCaml

Why OCaml, why now?

A blog about game development in OCaml

(Functional) Alternatives to inheritance

camlPDF

OCaml library for reading, writing and modifying PDF files.

slacko

A neat interface for Slack in OCaml.

Learn X in Y minutes

Where X=OCaml.

Graphics

archimedes

2D plotting library.

cairo2

Binding to Cairo, a 2D Vector Graphics Library. Integrates well with lablgtk.

Vg

Declarative 2D vector graphics for OCaml.

glMLite

OpenGL bindings for OCaml. Provides an (experimental) functional API. (homepage)

lablgl

Interface to OpenGL. Integrates well with lablgtk.

tgls

Thin bindings OpenGL 3.{2,3},4.{0,1,2,3,4} and OpenGL ES {2,3}.

Internationalization

Camomile

A Unicode library for OCaml.

ocaml-m17n

Multilingualization for OCaml source code. Allows using Unicode identifiers in OCaml source code.

Uucd

Unicode character database decoder for OCaml.

Uucp

Unicode character properties for OCaml.

Uunf

Unicode text normalization for OCaml.

Uuseg

Unicode text segmentation for OCaml.

Uutf

Non-blocking streaming Unicode codec for OCaml.

User Interface

lablgtk

GTK2 and GTK3 bindings for OCaml with various higher-level facilities to define GUIs.

lablqml

QML Qt5 bindings for OCaml.

In 2 lists

labltk

Interface to the Tcl/Tk GUI framework. In the standard distribution for ocaml <= 4.01.

TSDL

Tsdl is an OCaml module providing thin bindings to the cross-platform SDL library.

Lambda-Term

Lambda-Term is a cross-platform library for manipulating the terminal. It provides an abstraction for keys, mouse events, and colors, as well as a set of widgets to write curses-like applications.

Notty

Notty is a declarative terminal library for OCaml, structured around the notion of composable images.

ocaml-linenoise

Self-contained OCaml bindings to linenoise; easy high-level readline functionality in OCaml.

Higher-Rank Polymorphism in OCaml

mikmatch

OCaml pattern-matching extended with regexps

Inlined records in constructors

Algebraic Data Types

XEN – OCaml Best Practices for Developers

OCaml Style Guide (by Jane Street)

See also: [1], [2], [3].

A safe but strange way of modifying OCaml compiler

Fiddling with the OCaml Type System

Large Source Code Examples

Base

Jane Street Capital's dependency-free, quick-compiling, fully-portable across any environment that can run OCaml code standard library.

cil

C Intermediate Language

coq

formal proof management system

In 2 lists

frama-c

platform dedicated to the analysis of source code written in C

libguestfs

library and tools for accessing and modifying virtual machine disk images

Liquidsoap

a swiss-army knife for multimedia streaming, notably used for netradios and webtvs

In 2 lists

mirage

library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms

MLDonkey

cross-platform multi-network peer-to-peer daemon

Oni2

Native, lightweight modal code editor.

pfff

pfff is a set of tools and APIs to perform some static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.

Tezos

a self-upgradable Proof of Stake blockchain

WHY3

platform for deductive program verification

xen-api

management stack that configures and controls Xen-enabled hosts and resource pools, and co-ordinates resources within the pool.

Logging

dolog

A dumb OCaml logger.

Volt

A variant of the Bolt OCaml logging tool.

Logs

Logs provides a logging infrastructure for OCaml.

Machine Learning

Ocaml-sklearn

scikit-learn for OCaml.

Owl

Scientific library with neural networks, algorithmic differentiation and ONNX support.

Object detection convolutional neural network with OCaml (based on Owl)

.

PyTorch bindings

OCaml bindings for PyTorch.

In 2 lists

Ocaml-NN

Fully functional monadic implementation of a Neural Network (FCNNs) in OCaml

Deep Learning with OCaml (PyTorch bindings)

.

Transfer Learning with OCaml (PyTorch bindings)

.

Reinforcement Learning with OCaml (PyTorch bindings)

.

Messaging

ocaml-zmq

ZeroMQ bindings for OCaml with Async and Lwt wrappers.

onanomsg

nanomsg bindings for OCaml.

Kafka

OCaml bindings for Apache Kafka.

AMQP

AMQP client library for Async and Lwt.

MPI

Message Passing Interface bindings for OCaml.

MQTT

OCaml implementation of the MQTT pubsub protocol.

capnp-ocaml

OCaml code generator plugin for the Cap'n Proto serialization framework.

Metaprogramming

A Guide to Extension Points in OCaml

Extension Points, or how OCaml is becoming more like Lisp

Syntax extensions without Camlp4: let's do it!

Reading Camlp4 – Ambassador to the Computers

ppx_import

Import is a syntax extension that allows to pull in types or signatures from other compiled interface files.

ppx_string_interpolate

A simple ppx filter to support string interpolation like [%str "value of foo is $(foo)"].

ppx_monad

Monad syntax extension for OCaml.

ppx_deriving_yojson

A Yojson codec generator for OCaml.

MetaOCaml

an OCaml dialect for multi-stage programming.

Fan

Fan is a compile-time metaprogramming system for OCaml, originally inspired from Camlp4. It's a combination of OCaml and Lispy Macros. It shares the same concrete syntax with OCaml.

camlp5

Camlp5 is a preprocessor-pretty-printer of OCaml.

camlp4

Camlp4 is part of the standard OCaml distribution and is different from Camlp5.

Metrics

prometheus

OCaml client library for Prometheus monitoring.

Mobile Applications

OCaml on iOS 7 Released

OCaml + Cordova = more secured, typed and hybrid mobile applications

Cordova plugins

List of bindings to Cordova plugins. Get access to native device components like accelerometer, SMS, geolocation, etc in OCaml.

Networking

ocaml-cohttp

Very lightweight HTTP server using Lwt or Async.

ocurl

OCaml bindings to libcurl.

httpaf

A high performance, memory efficient, and scalable web server written in OCaml.

piaf

Client/server library for HTTP/1.X / HTTP/2 written entirely in OCaml.

ocaml-dns

A pure OCaml implementation of the DNS protocol.

fluent-logger

Fluentd logger for OCaml.

charrua-unix

charrua-unix is a Unix DHCP daemon based on charrua-core.

Online Courses

OCaml MOOC: Introduction to Functional Programming in OCaml

Videos available in this playlist of the OCaml Software Foundation YouTube channel.

Cornell University – Data Structures and Functional Programming

.

In 2 lists

Princeton University - Functional programming in OCaml

.

University of Illinois

Course that uses OCaml to teach functional programming and programming language design

In 2 lists

Package Management

OPAM

A flexible Git-friendly package manager with multiple compiler support.

ocamlfind

Local OCaml library manager. Used by most of the OCaml ecosystem.

OCaml for Windows

opam repository and experimental build for Windows (deprecated since 2021).

Diskuv OCaml

Diskuv OCaml distribution for Windows.

makorel

Release OPAM packages easily.

esy

package.json workflow for native development with Reason/OCaml.

dune

A composable and opinionated build system for OCaml (former jbuilder)

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.

oasis2opam

Tool to convert OASIS metadata to OPAM package descriptions.

obuild

Simple package build system for ocaml.

ocaml-makefile

Easy to use Makefile for small to medium-sized OCaml-projects.

topkg

OPAM-aware packaging system using ocamlbuild.

Bazel

OCaml rules for Bazel, Google's multi-language and platform build tool.

Parallelism

Parmap

Provides easy-to-use parallel map and fold functions.

ForkWork

A simple library for forking child processes to perform work on multiple cores.

Functory

A distributed computing library which facilitates distributed execution of parallelizable computations in a seamless fashion.

Rpc.Parallel

A library for spawning processes on a cluster of machines, and passing typed messages between them.

Ocamlnet

An enhanced system platform library. Contains the netmulticore library to compute tasks on as many cores of the machine as needed.

Nproc

Process pool implementation for OCaml.

Parany

Parallelize computation over independent items, even if there is an infinite number of them.

Sklml

Functional parallel skeleton compiler and programming system for OCaml programs.

SPOC

Libraries and syntax extensions to offload intensive computations to parallel accelerators (multicore CPUs, GPUs and other accelerators compatible with GPGPU frameworks).

What is the state of OCaml's parallelization abilities?

Parallel programming in multicore OCaml

Parallelism programming

from the officiel OCaml manual

Awesome multicore OCaml

. A compilation of resources

Printers helpers

Dum

Inspect

ppx_deriving

’s [@@deriving show].

refl

, a ppx_deriving-like.

lrt

, another ppx_deriving-like.

tpf

, again a ppx_deriving-like.

typerep

, probably a ppx_deriving-like with ppx_typerep_conv.

repr

, which appears to have the user build the type representation manually from combinators in addition to also having the user pass it where needed.

data-encoding

, also fully manual.

cmon

, fully manual.

dune

A composable and opinionated build system for OCaml (former jbuilder)

Genprint

OCaml@p

Project Starter Templates

drom

The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience.

spin

Reason and Ocaml project generator

modern-ocaml

Template for an ocaml project with modern tooling

Questions

OCaml polymorphism example other than template function?

OCaml - polymorphic print and type losing

Science and Technical Computing

biocaml

OCaml Bioinformatics Library http://biocaml.org.

In 2 lists

bistro

OCaml library for building bioinformatics pipelines.

In 2 lists

lacaml

OCaml bindings for BLAS/LAPACK (high-performance linear algebra Fortran libraries).

obandit

OCaml library for multi-armed bandits.

onumerical

Numerical library for OCaml.

oml

OCaml library for general numerical work.

ocephes

Bindings to frequently used C special functions library.

slap

A linear algebra library in OCaml with type-based static size checking for matrix operations.

tensorflow-ocaml

OCaml bindings for TensorFlow.

In 2 lists

owl

OCaml numerical library: dense and sparse matrix, linear algebra, regressions, maths and stats functions.

WHIZARD

A system designed for the efficient calculation of multi-particle scattering cross sections and simulated event samples.

Regular Expressions

Re

a pure OCaml regular expressions library with combinators, supporting several formats (glob, posix, str, etc.).

ocaml-pcre

bindings to the PCRE library (perl-compatible regular expressions)

Humane-re

Humane-re attempts to provide an easy interface for 90% of your regex needs. Courtesy of ocaml-re.

Tyre

Tyre is a set of combinators to build type-safe regular expressions, allowing automatic extraction and modification of matched groups.

Security and Cryptography

ocaml-tls

TLS in pure OCaml.

In 2 lists

Digestif

Hash algorithms (like SHA* or BLAKE2*) in OCaml and C.

In 2 lists

cryptokit

The Cryptokit library for OCaml provides a variety of cryptographic primitives that can be used to implement cryptographic protocols in security-sensitive applications.

nocoiner

A Commitment scheme library for Multi-party computations such as online auctions and gambling.

nocrypto

A small cryptographic library behind the ocaml-tls project. It is built to be straightforward to use, adhere to functional programming principles, and able to run in a Xen-based unikernel.

Semantic Technology

OCaml-RDF

OCaml library to manipulate RDF graphs and execute Sparql queries.

Serialization

atdgen

A serialization compiler for multiple languages (OCaml, Java, Python, Scala, Typescript) with a Binou or JSON format

In 2 lists

bencode

Bencode (.torrent file format) reader/writer.

biniou

Extensible binary data format, like JSON but faster.

cbor

OCaml native CBOR decoder/encoder.

jsonm

Non-blocking streaming JSON codec for OCaml.

xmlm

A streaming codec to decode and encode the XML data format.

yojson

An optimized parsing and printing library for the JSON format.

sexplib

A S-expression parser and printer

System Programming

mirage

library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms

ocaml-fat

Read and write FAT-format filesystems from OCaml.

ocaml-git

Pure OCaml low-level git bindings.

ocaml-vchan

Pure OCaml implementation of the "vchan" shared-memory communication protocol.

OMicroB

A virtual machine designed to run OCaml bytecode on AVR (Arduino for instance) micro-controlers.

OCaPIC

An OCaml virtual machine for PIC18 micro-controlers.

ocaml-esp32

A compiler for ESP32 SoC.

Testing

Alcotest

A lightweight and colourful test framework.

OUnit

OUnit is a unit test framework for OCaml. It allows one to easily create unit-tests for OCaml code. It is based on HUnit, a unit testing framework for Haskell.

QCheck

QCheck is a property testing library inspired from Haskell's QuickCheck

iTeML

(formerly known as qtest) — supports inline pragma's to generate tests.

Kaputt

comprehensive testing framework.

Pa_test

General inline testing macro's.

TestSimple

A lightweight unit testing framework compatible with the Test Anything Protocol.

expect-test

A framework for writing tests in OCaml, similar to Cram, developed by JaneStreet.

Utilities

ocaml-cuid

Collision-resistant IDs for server scalability & database performance.

Validate

PPX deriver designed to streamline the process of validating records.

Uuidm

Uuidm is an OCaml module implementing 128-bit universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.

sqids-ocaml

Official OCaml port of Sqids. Generate short unique IDs from numbers.

Web Development

Opium

Sinatra like web toolkit for OCaml.

Ocsigen Eliom

Eliom is a full-featured multi-tier framework, for developing multi-platform Web and mobile apps as 100% OCaml distributed applications. It can also be used for more traditional Web or mobile apps: Web sites, single page applications, REST API, etc.

Dream

Tidy Web framework for OCaml and ReasonML

webmachine

A REST toolkit for OCaml. OCaml webmachine is a layer on top of cohttp that implements a state-machine-based HTTP request processor. It's particularly well-suited for writing RESTful APIs. As the name suggests, this is an OCaml port of the webmachine project.

incr_dom

A library for building dynamic webapps, using Js_of_ocaml

fmlib_browser

a library which helps to write web applications which run in the browser in a pure functional style.

ocaml-vdom

Elm architecture and (V)DOM for OCaml

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.

Ocamlnet

An enhanced system platform library. Contains the netmulticore library to compute tasks on as many cores of the machine as needed.

tyxml

Library to build valid (according to the W3C spec) Html and Svg trees.

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.

In 2 lists

commonjs_of_ocaml

Easily import and export CommonJS modules from a js_of_ocaml project.

ReScript

ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript.

In 2 lists

ocaml-uri

RFC3986 URI parsing library.

Goji

An OCaml bindings generator for JavaScript libraries.

Syndic

RSS and Atom feed parsing

ocaml-mustache

mustache.js logic-less templates in OCaml.

atdjs

atd code generator (serialization) for OCaml/js_of_ocaml.

jingoo

OCaml template engine almost compatible with jinja2.

dispatch

Path-based dispatching for client- and server-side applications.

Lambda Soup

Functional HTML scraping and manipulation with CSS selectors, à la Python's Beautiful Soup.

Markup.ml

Error-recovering streaming HTML5 and XML parsers, serializers.

gen_js_api

gen_js_api aims at simplifying the creation of OCaml bindings for Javascript libraries.

routes

Typed routes for OCaml/ReasonML web applications.

Cumulus

Hacker news like website with the OCaml framework Ocsigen

See category
94

Awesome Rust

rust-unofficial/awesome-rust

A curated list of Rust code and resources.

Fresh★ 60k1833 entriesPushed today
94

Awesome Mac

jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

Fresh★ 115k1316 entriesPushed today
94

Awesome Python

vinta/awesome-python

The definitive list that answers "I want to do X in Python, which tool should I use?"

Fresh★ 324k504 entriesPushed today
94

Awesome C++

fffaraz/awesome-cpp

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Fresh★ 74k1358 entriesPushed yesterday
94

Awesome Go

avelino/awesome-go

A curated list of awesome Go frameworks, libraries and software

Fresh★ 186k3119 entriesPushed yesterday
94

Awesome PHP

ziadoz/awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things.

Fresh★ 33k87 entriesPushed 2 days ago