User Experience on mobile might not be great yet, but I'm working on it.

Your first time on this page? Allow me to give some explanations.

Awesome OCaml

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

Here you can see meta information about this topic like the time we last updated this page, the original creator of the awesome list and a link to the original GitHub repository.

Last Update: Nov. 30, 2021, 11:09 a.m.

Thank you ocaml-community & contributors
View Topic on GitHub:
ocaml-community/awesome-ocaml

Search for resources by name or description.
Simply type in what you are looking for and the results will be filtered on the fly.

Further filter the resources on this page by type (repository/other resource), number of stars on GitHub and time of last commit in months.

Community

Algorithms and Data Structures

OCaml graph library

168
49
4m
n/a

Data structures and algorithms in OCaml

40
5
1y 5m
n/a

OCaml library for combinatorics

28
2
1y 4m
n/a

Pure OCaml implementation of Zlib.

103
20
39d
MIT

Fast implementation of queue in OCaml

32
4
43d
MIT

Pure OCaml implementation of libXdiff (Rabin's fingerprint)

18
2
8m
MIT

Library of Raft consensus algorithm implemented in OCaml

8
0
1y 18d
Apache-2.0

Application Libraries

Batteries Included project

427
103
19d
n/a

Declarative definition of command line interfaces for OCaml

189
42
38d
ISC

Jane Street Capital's standard library overlay

902
89
6d
MIT

Standard library for OCaml

561
73
6d
MIT

Minimalist OCaml library for command line parsing

22
3
1y 54d
n/a

Pretty-printing library for OCaml

28
15
2y 19d
n/a

Light library to deal with RPCs in OCaml

77
28
15d
ISC

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

384
70
18d
BSD-2-Clause

Benchmarking

Micro-benchmarking library for OCaml

38
9
6d
MIT

Benchmarking module for OCaml

26
6
2y 79d
LGPL-3.0

Blogs

Books

Code Analysis and Linters

pfff is mainly an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.

146
21
7d
n/a

A static analyzer for Java, C, C++, and Objective-C

12.74K
1.74K
7d
MIT

Adds static typing to JavaScript to improve developer productivity and code quality.

21.52K
1.84K
6d
MIT

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

319
26
5y 4m
n/a

The MemCAD static analyzer

22
5
46d
n/a

A fully-modular OCaml style linter

30
3
9m
Apache-2.0

Program analysis

Binary Analysis Platform

1.53K
237
8d
MIT

Binary code static analyser, with IDA integration. Performs value and taint analysis, type reconstruction, use-after-free and double-free detection

1.2K
145
6d
n/a

cwe_checker finds vulnerable patterns in binary executables

539
72
28d
LGPL-3.0

Compilers and Compiler Tools

Concurrency

Databases

Syntax extension for embedded SQL queries using PG'OCaml.

49
7
1y 87d
BSD-3-Clause

OCaml bindings to the SQLite3 database

89
25
68d
n/a

Redis bindings for OCaml

63
25
5m
BSD-3-Clause

A pure OCaml PostgreSQL client library

106
10
5m
n/a

OCaml implementation of MySQL/MariaDB protocol with the Bitstring library

9
1
1y 7d
n/a

Irmin is a distributed database that follows the same design principles as Git

1.51K
139
7d
ISC

Open Source Social Database

11
0
6y 10m
MIT

The dumb OCaml key-value store

8
1
1y 10m
n/a

OCaml type-safe query builder with syntax tree extension

109
13
2y 8m
n/a
35
10
2y 16d
n/a

Object Relational Mapper extension

48
7
5y 5m
n/a

Cooperative-threaded access to relational data

194
20
6d
n/a

Datetime

Parser and printer for date-times in ISO8601

27
9
10m
MIT

date and duration in ocaml

21
6
1y 12d
MIT

Developer Tools

An OCaml kernel for Jupyter (IPython) notebook

199
29
115d
MIT

Universal toplevel for OCaml

678
75
12d
n/a

Auto-formatter for OCaml code

431
109
13d
MIT

A command-line tool to manage Github Issues

18
1
7y 6m
n/a

🐫Yeoman generator to scaffold OCaml modules.

21
4
3y 5m
MIT

Library for binding to C libraries using pure OCaml

305
78
15d
MIT

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

16
0
4y 59d
n/a

OCaml bindings for Python

118
19
25d
BSD-2-Clause

OCaml Language Server Protocol implementation

419
75
6d
n/a

Context sensitive completion for OCaml in Vim and Emacs

1.36K
194
7d
MIT

Emacs OCaml mode

300
67
37d
GPL-2.0

Type and doc on hover for OCaml and Reason in emacs

36
2
2y 93d
GPL-3.0

An extension for VS Code which provides support for the OCaml language.

175
27
1y 0d
MIT

OCaml debug adapter

127
12
30d
AGPL-3.0

Default Sublime Text highlighting for OCaml sucks. I've fixed it.

22
5
3y 9m
n/a

Merlin 2 package for Sublime Text 3

13
1
4y 5m
MIT
19
0
4y 85d
ISC

Integration of ocp-indent to vim.

28
8
3y 8m
MIT

Code coverage for OCaml and ReScript

233
37
7d
MIT

Exercises and Short Examples

Formal Software Verification

General

Graphics

Binding to Cairo, a 2D Vector Graphics Library.

37
5
18d
LGPL-3.0

Declarative 2D vector graphics for OCaml

73
10
1y 6m
ISC

OCaml bindings for OpenGL

16
2
8d
MIT

Internationalization

A Unicode library for OCaml

108
22
2y 115d
n/a

Multilingualization for the OCaml source code

46
4
3y 94d
MIT

Unicode character database decoder for OCaml

11
4
75d
ISC

Unicode character properties for OCaml

17
7
4m
ISC

Unicode text normalization for OCaml

18
5
74d
ISC

Unicode text segmentation for OCaml

15
3
75d
ISC

Non-blocking streaming Unicode codec for OCaml

23
11
2y 9m
ISC

User Interface

Interfacing Qt/QML with OCaml. Formely known as lablqt

141
14
5m
LGPL-2.1

Terminal manipulation library for OCaml

176
35
8m
n/a

Declarative terminal graphics for OCaml

263
11
1y 6m
ISC

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

39
3
1y 6m
n/a

Language-related

Large Source Code Examples

Standard library for OCaml

561
73
6d
MIT

C Intermediate Language

277
74
5y 8m
n/a

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.

3.53K
531
6d
LGPL-2.1

Client, backend, and services for Dark: https://darklang.com

927
67
6d
n/a

library and tools for accessing and modifying virtual machine disk images. PLEASE DO NOT USE GITHUB FOR ISSUES OR PULL REQUESTS. See the website for how to file a bug or contact us.

456
146
8d
n/a

Audio and video streaming language

897
100
6d
GPL-2.0

MirageOS is a library operating system that constructs unikernels

1.7K
203
40d
ISC

cross-platform multi-network p2p daemon

166
35
6m
GPL-2.0

Native, lightweight modal code editor

6.63K
251
34d
MIT

pfff is mainly an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.

146
21
7d
n/a

The Xapi Project's XenAPI Server

320
250
6d
n/a

Logging

A dumb OCaml logger

27
7
4m
n/a

Volt - A variant of Bolt OCaml logging tool

5
1
8m
LGPL-3.0

Machine Learning

Messaging

ZeroMQ bindings for OCaml

68
13
53d
n/a

nanomsg bindings for ocaml

40
9
1y 33d
WTFPL

OCaml bindings for Kafka

44
10
1y 42d
MIT

OCaml Amqp client library for Async and Lwt.

58
11
117d
BSD-3-Clause

OCaml/MPI interface

18
10
95d
n/a

OCaml implementation of the MQTT pubsub protocol.

20
4
1y 5d
BSD-2-Clause

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

78
14
92d
n/a

Metaprogramming

Metrics

OCaml library for reporting metrics to a Prometheus server

28
13
13d
Apache-2.0

Mobile Applications

Networking

An OCaml library for HTTP clients and servers using Lwt or Async

561
144
25d
n/a

OCaml bindings to libcurl

52
26
88d
MIT

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

489
38
4m
n/a

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

110
11
14d
BSD-3-Clause

OCaml implementation of the DNS protocol

77
35
11d
BSD-2-Clause

A structured logger for Fluentd (OCaml)

7
2
7y 94d
Apache-2.0

A DHCP server for UNIX systems based on charrua-core.

11
2
4y 6m
ISC

Online Courses

Package Management

makorel - Release OPAM packages easily

8
0
6y 11m
MIT

package.json workflow for native development with Reason/OCaml

763
87
6d
n/a

A composable build system for OCaml.

1.16K
273
6d
MIT

Tool to convert OASIS metadata to OPAM package descriptions

28
10
4y 77d
n/a

simple package build system for ocaml

50
19
2y 8m
BSD-2-Clause

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

67
16
2y 51d
n/a

The transitory OCaml software packager

65
24
58d
ISC

OCaml build rules for Bazel

37
9
1y 5m
Apache-2.0

Parallelism

OCaml library for forking child processes to perform work on multiple cores

20
3
8y 7m
n/a

Type-safe library for building parallel applications, built on top of Async's Rpc module.

45
10
6d
MIT

Process pools for OCaml

29
6
8y 96d
n/a

Parallelize anything //

37
6
35d
n/a

Stream Processing with OCaml

118
8
96d
n/a

Project Starter Templates

drom is a wrapper over opam/dune in an attempt to provide a cargo-like user experience. It can be used to create full OCaml projects with sphinx and odoc documentation. It has specific knowledge of Github and will generate files for Github Actions CI and Github pages.

127
11
6d
n/a

OCaml project generator.

269
12
6d
ISC

Template for an ocaml project with modern tooling

54
2
1y 30d
AGPL-3.0

Questions

Science and Technical Computing

OCaml Bioinformatics Library

104
18
4m
n/a

A library to build and execute typed scientific workflows

43
9
16d
n/a

Numerical Library for OCaml

8
0
7y 8m
n/a

OCaml Math Library

112
10
3y 10m
Apache-2.0

Bindings to special math functions from the Cephes library.

11
3
5y 5m
BSD-3-Clause

BLAS and LAPACK binding in OCaml with type-based static size checking for matrix operations

78
4
1y 4m
LGPL-2.1

OCaml bindings for TensorFlow

275
29
2y 4m
Apache-2.0

Owl - OCaml Scientific and Engineering Computing @ http://ocaml.xyz

962
93
25d
MIT

Regular Expressions

Pure OCaml regular expressions, with support for Perl and POSIX-style strings

185
55
1y 110d
n/a

OCaml bindings to PCRE (Perl Compatibility Regular Expressions)

23
6
4m
n/a

The human friendly interface to ocaml-re

25
2
2y 75d
n/a

Typed Regular Expressions

149
3
1y 10m
ISC

Security and Cryptography

TLS in pure OCaml

257
56
16d
BSD-2-Clause

Simple hash algorithms in OCaml

73
23
49d
MIT

A library of cryptographic primitives (ciphers, hashes, etc) for OCaml

70
19
6m
n/a

A Commitment Scheme library for Coin Flipping/Tossing algorithms and sort.

8
1
109d
MIT

OCaml cryptographic library

106
50
2y 10m
ISC

Semantic Technology

Serialization

Bencode (.torrent file format) reader/writer in OCaml

18
3
6m
n/a

Extensible binary data format, like JSON but faster

33
14
2y 119d
n/a

OCaml CBOR generic decoder/encoder, RFC 7049, http://cbor.io/

21
10
51d
MIT

Low-level JSON parsing and pretty-printing library for OCaml

208
45
8d
BSD-3-Clause

Automated S-expression conversion

126
21
18d
n/a

System Programming

MirageOS is a library operating system that constructs unikernels

1.7K
203
40d
ISC

Read and write FAT format filesystems from OCaml

25
15
1y 5d
ISC

Pure OCaml Git format and protocol

320
62
19d
ISC

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

45
20
1y 40d
ISC

An OCaml generic virtual machine for microcontrollers

95
19
1y 8m
n/a
18
2
1y 18d
n/a

Testing

A lightweight and colourful test framework

293
63
49d
ISC

QuickCheck inspired property-based testing for OCaml.

246
24
14d
BSD-2-Clause

Inline (Unit) Tests for OCaml

58
6
7m
GPL-3.0

Test::Simple, for OCaml

13
1
6y 9m
n/a

Cram like framework for OCaml

86
13
6d
MIT

Utilities

Web Development

Sinatra like web toolkit for OCaml

669
59
9d
MIT

A REST toolkit for OCaml

215
26
1y 69d
n/a

A library for building dynamic webapps, using Js_of_ocaml.

314
23
18d
MIT

Elm architecture and (V)DOM for OCaml

163
11
113d
MIT

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.

101
21
1y 10m
n/a

Import and export CommonJS modules in js_of_ocaml

13
2
5y 6m
MIT

RFC3986 URI parsing library for OCaml

83
51
7m
n/a

An OCaml bindings generator for JavaScript libraries

44
9
7y 4m
n/a

RSS and Atom feed parsing

31
11
2y 6m
MIT

mustache.js logic-less templates in OCaml

68
24
10m
MIT

atd code generator for OCaml/js_of_ocaml

9
0
8y 68d
n/a

OCaml template engine almost compatible with jinja2

95
17
84d
n/a

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

39
7
1y 7m
n/a

Functional HTML scraping and rewriting with CSS in OCaml

304
23
23d
MIT

Error-recovering streaming HTML5 and XML parsers

131
10
23d
MIT

Easy OCaml bindings for Javascript libraries

150
25
113d
MIT

typed bidirectional router for OCaml/ReasonML web applications

109
9
74d
BSD-3-Clause

A friendly and minimalist link sharing website

44
4
6y 7m
MIT

Bucklescript) ReScript is a type-safe language that compiles to the highest quality of clean, readable and performant JavaScript code.