awesome-ocaml

OCaml toolkit

A curated collection of resources and tools for OCaml developers

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

GitHub

3k stars
125 watching
168 forks
last commit: 13 days ago
Linked from 8 awesome lists

awesomeocamlprogramming-languageresources

Awesome OCaml / Community

Official OCaml Website
OCaml Discourse Web Forum
OCaml Discord Chat
Official OCaml Mailing List
OCaml Planet
OCaml SubReddit

Awesome OCaml / Algorithms and Data Structures

Comparing a Machine Learning Algorithm Implemented in F# and OCaml
OCamlgraph 234 8 days ago – A generic graph library for OCaml
ods 48 almost 2 years ago – A large collection of data structures and algorithms for OCaml
combine 35 2 months ago – OCaml library for combinatorics
Decompress 115 10 months ago A pure OCaml implementation of Zlib
Ke 51 9 months ago Fast implementation of queue (FIFO) in OCaml
Duff 20 over 1 year ago Implementation of Rabin's fingerprint and delta compression by P. MacDonald in OCaml (same as
ORaft 28 over 1 year ago Library of implemented in OCaml
ODiff 2,061 about 2 months ago – Library of implemented in OCaml and ReasonML

Awesome OCaml / Application Libraries

Batteries Included 519 7 months ago – A community-maintained foundation library for your OCaml projects
Cmdliner 296 6 months ago – Declarative definition of command line interfaces for OCaml
Core 1,115 13 days ago – Jane Street Capital's full-fledged standard library overlay. A portable subset of Core is also available:
Base 868 13 days ago 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 30 about 4 years ago – Minimalist library for command-line parsing
easy-format 43 over 2 years ago – Pretty-printing library for OCaml
ocaml-rpc 96 about 2 months ago – Light library to deal with RPCs in OCaml
ocaml-containers 492 6 days ago – A lightweight, modular standard library extension, string library, and interfaces to various libraries (bigarrays, Unix, etc.) BSD license

Awesome OCaml / Benchmarking

core_bench 49 13 days ago – Micro-benchmarking library for OCaml by Jane Street.   -
benchmark 28 13 days ago – Benchmarking functions for measuring the run-time of functions using latency or throughput

Awesome OCaml / Blogs

Gagallium
Type OCaml – Many things about OCaml
OCaml Platform
Drup's Thingies
Thomas Letan’s articles about OCaml

Awesome 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 with worked-out answers and hints
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 to learn programming in the function-oriented paradigm, or those who simply want to learn OCaml
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
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

Awesome OCaml / Code Analysis and Linters

Mascot Mascot is a style-checker for OCaml sources
pfff 185 almost 2 years ago – 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 14,979 7 days ago Infer is a static analyzer for Java, C and Objective-C
Frama-C Frama-C is a static analysis and formal proof framework for C and C++
flow 22,091 6 days ago flow is a static type checker for JavaScript
SLAyer 326 over 8 years ago SLAyer is an automatic formal verification tool that uses separation logic to verify memory safety of C programs
MemCAD 25 about 3 years ago MemCAD is an abstract interpreter for shape analysis. MemCAD can verify C programs manipulating complex data structures
Camelot 44 over 1 year ago Camelot is a modular and fully configurable OCaml linter and stylechecker
coq-of-ocaml 255 4 months ago 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

Awesome OCaml / Program analysis

BAP 2,068 3 months ago BAP is a reverse engineering and program analysis platform that targets binary programs
BinCat 1,691 about 2 months ago BinCat is a binary code static analysis toolkit
cwe_checker 1,124 3 months ago cwe_checker finds vulnerable patterns in binary executables
Owi 135 5 days ago 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
Smt.ml 27 15 days ago 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

Awesome OCaml / Compilers and Compiler Tools

Opal 146 over 1 year ago – Self-contained monadic parser combinators for OCaml
Sedlex 240 20 days ago is a modern, encoding-agnostic (read: Unicode-supporting) lexer generator (the ppx-based successor to .)
Menhir – Menhir is a LR(1) parser generator for OCaml

Awesome OCaml / Compilers and Compiler Tools / Menhir

ocaml-parsing 124 7 months ago See for a clearer example of using Menhir and Sedlex to produce a useful parser,
Obelisk 55 4 months ago ... and , a neat project to produce readable LaTeX, HTML, or plain-text EBNF-style documentation for your grammar

Awesome OCaml / Compilers and Compiler Tools

ocamllex/ocamlyacc – lex and yacc implementation for OCaml
Angstrom 649 2 months ago Parser combinators built for speed and memory efficiency
Kaleidoscope: Implementing a Language with LLVM in Objective Caml¶

Awesome OCaml / Concurrency / :

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

Awesome OCaml / 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

Awesome OCaml / Databases / PG'OCaml

ppx_pgsql 52 about 4 years ago – A syntax extension for embedded SQL queries using PG'OCaml

Awesome OCaml / Databases

PostgreSQL-OCaml — An interface to PostgreSQL through the C API ( )
SQLite3 114 25 days ago — OCaml bindings to the SQLite3 database
Sqlite3EZ — Thin wrapper for SQLite3 with a simplified interface
ocaml-redis 74 about 1 year ago – Redis bindings for OCaml
mysql – Bindings to libmysqlclient for interacting with MySQL databases
pgx 122 about 2 years ago – A pure OCaml PostgreSQL client library
mysql_protocol 14 over 2 years ago – Implementation of MySQL Protocol with the Bitstring library
Irmin 1,852 about 2 months ago — A distributed database that follows the same design principles as Git
Obigstore — A database with BigTable-like data model atop LevelDB
RunOrg 12 over 9 years ago It is a WIP database server written in OCaml
dokeysto 10 almost 2 years ago dumb OCaml key-value store, string keys and string values. Optional on-the-fly LZ4 compression of values or tokyocabinet backend
Sequoia 123 almost 2 years ago Sequoia is a type-safe query builder for MySQL/MariaDB and PostgreSQL
Macaque 38 about 5 years ago — Macaque is a library for safe and flexible database queries using comprehensions on top of PG'OCaml
ORM 60 about 6 years ago — ORM for SQLite
Caqti 311 28 days ago Cooperative-threaded access to relational data
Caqti setence preparation, ppx_rapper 137 7 months ago

Awesome OCaml / Databases / :

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

Awesome OCaml / Datetime

ISO8601 29 10 months ago
calendar
odate 23 7 months ago
ptime

Awesome OCaml / Developer Tools

ctypes 371 3 months ago – Library for binding to C libraries using pure OCaml
ocaml-main-program-in-c 16 about 7 years ago – Example build system for making mixed C/Ocaml binaries where the main program is in C
Modular foreign function bindings
Py.ml 187 5 months ago OCaml bindings for Python
ocaml-lsp 772 7 days ago An LSP language server for OCaml that integrates with any editor that understands LSP like , Vim and Emacs
merlin 1,586 28 days ago – Context sensitive completion for OCaml in Vim and Emacs
tuareg 364 4 months ago OCaml mode for Emacs that can run the toplevel and the debugger within Emacs
opam-switch-mode 5 over 1 year ago Minor mode for Emacs that extends Tuareg and Merlin with menus to change or reset the opam switch in the ambient Emacs session
merlin-eldoc 44 almost 2 years ago – Emacs package to provide merlin's features through eldoc
vscode-ocaml 170 almost 4 years ago – extension that provides OCaml language support for
OCaml Debugger 207 6 days ago – extension that provides OCaml Debugger for
Sublime better ocaml 23 almost 7 years ago – Better OCaml mode for Sublime Text

Awesome OCaml / Developer Tools / Sublime better ocaml

Sublime text package 12 over 7 years ago

Awesome OCaml / Developer Tools

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

Awesome OCaml / Developer Tools / ocp-index

ocp-browser – Small ncurses-based API and documentation browser
ocp-index-top 20 about 7 years ago – Toplevel directive for looking up documentation using ocp-index
Sublime text package

Awesome OCaml / Developer Tools

ocp-indent – Indentation tool for OCaml, to be used from editors like Emacs and Vim

Awesome OCaml / Developer Tools / ocp-indent

Vim plugin 29 over 6 years ago

Awesome OCaml / Developer Tools

Bisect_ppx 302 8 months ago

Awesome OCaml / Exercises and Short Examples

99 problems . 99% of the solutions are
learn-ocaml-corpus . Corpus of beginner-to-advanced online exercises (including those from the OCaml MOOC) with automatic grading tests
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.
Programming Language Examples Alike Cookbook The OCaml section of the book is a free reference for solving common programming problems using OCaml

Awesome 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
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

Awesome OCaml / 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 201 17 days ago – OCaml library for reading, writing and modifying PDF files
slacko 81 10 months ago – A neat interface for Slack in OCaml
Learn X in Y minutes Where X=OCaml

Awesome OCaml / Graphics

archimedes — 2D plotting library
cairo2 54 13 days ago — Binding to Cairo, a 2D Vector Graphics Library. Integrates well with lablgtk
Vg 91 6 months ago – Declarative 2D vector graphics for OCaml
glMLite 19 over 2 years ago — OpenGL bindings for OCaml. Provides an (experimental) functional API. ( )
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}

Awesome OCaml / Internationalization

Camomile 124 8 months ago — A Unicode library for OCaml
ocaml-m17n 50 over 5 years ago — Multilingualization for OCaml source code. Allows using Unicode identifiers in OCaml source code
Uucd 17 11 days ago — Unicode character database decoder for OCaml
Uucp 21 11 days ago — Unicode character properties for OCaml
Uunf 21 11 days ago — Unicode text normalization for OCaml
Uuseg 23 11 days ago — Unicode text segmentation for OCaml
Uutf 32 about 1 year ago — Non-blocking streaming Unicode codec for OCaml

Awesome OCaml / User Interface

lablgtk — GTK2 and GTK3 bindings for OCaml with various higher-level facilities to define GUIs
lablqml 159 10 months ago – QML Qt5 bindings for OCaml
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 209 4 months ago – 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 351 8 months ago Notty is a declarative terminal library for OCaml, structured around the notion of composable images
ocaml-linenoise 51 4 months ago Self-contained OCaml bindings to linenoise; easy high-level readline functionality in OCaml
Higher-Rank Polymorphism in OCaml
mikmatch 22 about 1 year ago – 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: , ,
A safe but strange way of modifying OCaml compiler
Fiddling with the OCaml Type System

Awesome OCaml / Large Source Code Examples

Base 868 13 days ago Standard library for OCaml
cil 361 about 1 year ago C Intermediate Language
coq 4,859 6 days ago formal proof management system
frama-c platform dedicated to the analysis of source code written in C
libguestfs 631 6 days ago library and tools for accessing and modifying virtual machine disk images
Liquidsoap 1,415 5 days ago a swiss-army knife for multimedia streaming, notably used for netradios and webtvs
mirage 2,562 6 days ago library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms
MLDonkey 256 3 months ago cross-platform multi-network peer-to-peer daemon
Oni2 7,838 over 2 years ago Native, lightweight modal code editor
pfff 185 almost 2 years ago 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
Tezos a self-upgradable Proof of Stake blockchain
WHY3 platform for deductive program verification
xen-api 345 3 days ago management stack that configures and controls Xen-enabled hosts and resource pools, and co-ordinates resources within the pool

Awesome OCaml / Logging

dolog 37 about 1 year ago – A dumb OCaml logger
Volt 8 about 1 year ago – A variant of the Bolt OCaml logging tool
Logs Logs provides a logging infrastructure for OCaml

Awesome OCaml / Machine Learning

Ocaml-sklearn 34 almost 4 years ago 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) 17 almost 5 years ago
PyTorch bindings 413 about 1 month ago OCaml bindings for PyTorch

Awesome OCaml / Machine Learning / PyTorch bindings

Ocaml-NN 5 11 months ago Fully functional monadic implementation of a Neural Network (FCNNs) in OCaml

Awesome OCaml / Machine Learning

Deep Learning with OCaml (PyTorch bindings)
Transfer Learning with OCaml (PyTorch bindings)
Reinforcement Learning with OCaml (PyTorch bindings)

Awesome OCaml / Messaging

ocaml-zmq 80 6 months ago – ZeroMQ bindings for OCaml with Async and Lwt wrappers
onanomsg 38 about 4 years ago – nanomsg bindings for OCaml
Kafka 63 5 months ago – OCaml bindings for Apache Kafka
AMQP 62 6 months ago – AMQP client library for Async and Lwt
MPI 24 8 months ago – Message Passing Interface bindings for OCaml
MQTT 19 almost 4 years ago – OCaml implementation of the MQTT pubsub protocol
capnp-ocaml 98 over 1 year ago – OCaml code generator plugin for the Cap'n Proto serialization framework

Awesome OCaml / 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 89 9 days ago – Import is a syntax extension that allows to pull in types or signatures from other compiled interface files
ppx_string_interpolate 21 over 4 years ago – A simple ppx filter to support string interpolation like
ppx_monad 7 over 7 years ago – Monad syntax extension for OCaml
ppx_deriving_yojson 157 4 months ago – 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

Awesome OCaml / Metrics

prometheus 51 7 months ago – OCaml client library for Prometheus monitoring

Awesome OCaml / Mobile Applications / :

OCaml on iOS 7 Released
OCaml + Cordova = more secured, typed and hybrid mobile applications
Cordova plugins 26 about 8 years ago – List of bindings to Cordova plugins. Get access to native device components like accelerometer, SMS, geolocation, etc in OCaml

Awesome OCaml / Networking / :

ocaml-cohttp 711 about 1 month ago – Very lightweight HTTP server using Lwt or Async
ocurl 59 4 months ago – OCaml bindings to libcurl
httpaf 535 6 months ago – A high performance, memory efficient, and scalable web server written in OCaml
piaf 191 2 months ago Client/server library for HTTP/1.X / HTTP/2 written entirely in OCaml

Awesome OCaml / Networking

ocaml-dns 105 17 days ago – A pure OCaml implementation of the DNS protocol
fluent-logger 7 about 10 years ago – Fluentd logger for OCaml
charrua-unix 11 over 7 years ago charrua-unix is a Unix DHCP daemon based on

Awesome OCaml / Online Courses

OCaml MOOC: Introduction to Functional Programming in OCaml Videos available in of the YouTube channel
Cornell University – Data Structures and Functional Programming
Princeton University - Functional programming in OCaml
University of Illinois Course that uses OCaml to teach functional programming and programming language design

Awesome OCaml / 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 63 2 months ago Diskuv OCaml distribution for Windows
makorel 8 almost 10 years ago – Release OPAM packages easily
esy 846 5 days ago package.json workflow for native development with Reason/OCaml
dune 1,635 5 days ago – 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

Awesome OCaml / Package Management / Oasis

oasis2opam 27 about 7 years ago — Tool to convert OASIS metadata to OPAM package descriptions

Awesome OCaml / Package Management

obuild 55 about 1 year ago – Simple package build system for ocaml
ocaml-makefile 74 16 days ago — Easy to use Makefile for small to medium-sized OCaml-projects
topkg 68 about 1 year ago — OPAM-aware packaging system using ocamlbuild
Bazel 37 over 3 years ago OCaml rules for , Google's multi-language and platform build tool

Awesome OCaml / Parallelism

Parmap — Provides easy-to-use parallel map and fold functions
ForkWork 19 about 5 years ago — 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 47 13 days ago — A library for spawning processes on a cluster of machines, and passing typed messages between them
Ocamlnet — An enhanced system platform library. Contains the library to compute tasks on as many cores of the machine as needed
Nproc 29 about 11 years ago – Process pool implementation for OCaml
Parany 52 about 1 year ago – 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 138 11 months ago 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 283 8 months ago
Parallelism programming from the officiel OCaml manual
Awesome multicore OCaml 147 about 1 year ago . A compilation of resources

Awesome OCaml / Printers helpers

Console.log 459 7 months ago Reason's native
Dum 29 over 2 years ago
Inspect 33 over 8 years ago
ppx_deriving 466 about 2 months ago ’s
refl 51 about 2 years ago , a ppx_deriving-like
lrt 32 about 4 years ago , another ppx_deriving-like
tpf 23 over 4 years ago , again a ppx_deriving-like
typerep 23 3 months ago , 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 24 over 2 years ago , fully manual
dyn 1,635 5 days ago in Dune. It appears to also be fully manual
Genprint 29 over 4 years ago
OCaml@p 11 almost 8 years ago

Awesome OCaml / Project Starter Templates

drom 184 2 months ago The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience
spin 295 about 1 month ago Reason and Ocaml project generator
modern-ocaml 76 about 1 month ago Template for an ocaml project with modern tooling

Awesome OCaml / Questions

OCaml polymorphism example other than template function?
OCaml - polymorphic print and type losing

Science and Technical Computing

biocaml 123 almost 2 years ago – OCaml Bioinformatics Library
bistro 47 6 months ago – OCaml library for building bioinformatics pipelines
lacaml OCaml bindings for BLAS/LAPACK (high-performance linear algebra Fortran libraries)
obandit OCaml library for multi-armed bandits
onumerical 8 over 10 years ago – Numerical library for OCaml
oml 119 almost 7 years ago OCaml library for general numerical work
ocephes 12 over 8 years ago Bindings to frequently used special functions library
slap 88 over 4 years ago A linear algebra library in OCaml with type-based static size checking for matrix operations
tensorflow-ocaml 283 over 5 years ago – OCaml bindings for TensorFlow
owl 1,222 3 days ago 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

Science and Technical Computing / Regular Expressions

Re 232 20 days ago – a pure OCaml regular expressions library with combinators, supporting several formats (glob, posix, str, etc.)
ocaml-pcre 31 16 days ago – bindings to the PCRE library (perl-compatible regular expressions)
Humane-re 25 about 5 years ago – Humane-re attempts to provide an easy interface for 90% of your regex needs. Courtesy of ocaml-re
Tyre 171 almost 5 years ago Tyre is a set of combinators to build type-safe regular expressions, allowing automatic extraction and modification of matched groups

Science and Technical Computing / Security and Cryptography

ocaml-tls 304 24 days ago – TLS in pure OCaml
Digestif 87 8 months ago Hash algorithms (like SHA* or BLAKE2*) in OCaml and C
cryptokit 96 21 days ago – The Cryptokit library for OCaml provides a variety of cryptographic primitives that can be used to implement cryptographic protocols in security-sensitive applications
nocoiner 11 over 1 year ago A Commitment scheme library for Multi-party computations such as online auctions and gambling
nocrypto 111 over 4 years ago – 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

Science and Technical Computing / Semantic Technology

OCaml-RDF – OCaml library to manipulate RDF graphs and execute Sparql queries

Science and Technical Computing / Serialization

atdgen 316 4 months ago — A serialization compiler for multiple languages (OCaml, Java, Python, Scala, Typescript) with a Binou or JSON format
bencode 24 7 months ago — Bencode (.torrent file format) reader/writer
biniou 42 over 2 years ago – Extensible binary data format, like JSON but faster
cbor 24 almost 3 years ago — OCaml native decoder/encoder
jsonm — Non-blocking streaming JSON codec for OCaml
xmlm — A streaming codec to decode and encode the XML data format
yojson 328 5 months ago — An optimized parsing and printing library for the JSON format
sexplib 147 13 days ago – A S-expression parser and printer

Science and Technical Computing / System Programming

OMicroB 141 3 days ago 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 18 about 4 years ago A compiler for ESP32 SoC

Science and Technical Computing / Testing

Alcotest 455 about 2 months ago – 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 347 5 months ago — QCheck is a property testing library inspired from Haskell's QuickCheck
iTeML 66 over 3 years ago (formerly known as ) — supports inline pragma's to generate tests
Kaputt — comprehensive testing framework
Pa_test — General inline testing macro's
TestSimple 13 over 9 years ago A lightweight unit testing framework compatible with the
expect-test 145 13 days ago — A framework for writing tests in OCaml, similar to , developed by

Science and Technical Computing / Utilities

ocaml-cuid 18 over 2 years ago Collision-resistant IDs for server scalability & database performance
Validate 16 10 months ago 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 9 9 months ago Official OCaml port of Sqids. Generate short unique IDs from numbers

Science and Technical Computing / Web Development

Opium 759 5 months ago – 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 221 about 3 years ago – 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 381 13 days ago 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 197 4 months ago Elm architecture and (V)DOM for OCaml
COW 107 12 months ago – 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 has many relevant web libraries — html parser, for ASN.1 parsing, for Base64, Quoted Printable, URL encoding and HTML escaping, for MIME processing, etc. See the in Ocamlnet's manual
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

Science and Technical Computing / Web Development / js_of_ocaml

commonjs_of_ocaml 13 over 8 years ago Easily import and export CommonJS modules from a js_of_ocaml project

Science and Technical Computing / Web Development

ReScript ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript
ocaml-uri 98 4 months ago – RFC3986 URI parsing library
Goji 44 over 10 years ago – An OCaml bindings generator for JavaScript libraries
Syndic 34 about 1 year ago – RSS and Atom feed parsing
ocaml-mustache 83 6 months ago – mustache.js logic-less templates in OCaml
atdjs 9 about 11 years ago – atd code generator (serialization) for OCaml/js_of_ocaml
jingoo 127 8 months ago – OCaml template engine almost compatible with jinja2
dispatch 45 about 2 years ago – Path-based dispatching for client- and server-side applications
Lambda Soup 383 3 months ago Functional HTML scraping and manipulation with CSS selectors, à la Python's Beautiful Soup
Markup.ml 146 about 2 months ago Error-recovering streaming HTML5 and XML parsers, serializers
gen_js_api 175 about 1 month ago gen_js_api aims at simplifying the creation of OCaml bindings for Javascript libraries
routes 144 2 months ago Typed routes for OCaml/ReasonML web applications
Cumulus 49 over 9 years ago – Hacker news like website with the OCaml framework Ocsigen

Backlinks from these awesome lists:

More related projects: