OCaml

OCaml is a general-purpose, industrial-strength programming language with an emphasis on expressiveness and safety.

374 resources43 categoriesView Original

Books(10 items)

H

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.

Books
M

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.

Books
O

OCaml for Scientists

by Jon Harrop.

Books
O

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.

Books
O

OCaml Programming: Correct + Efficient + Beautiful

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

Books
P

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.

Books
P

Purely Functional Data Structures

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

Books
R

Real World OCaml

by Y. Minsky, A. Madhavapeddy, and J. Hickey - Functional Programming for the masses.

Books
U

Unix System Programming in OCaml

by X. Leroy and D. Rémy – Introduction to Unix Systems Programming, with an emphasis on communications between processes.

Books
U

Using, Understanding, and Unraveling OCaml

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

Books

Compilers and Compiler Tools(26 items)

A

Angstrom

Parser combinators built for speed and memory efficiency

Compilers and Compiler Tools
C

Caramel

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

Compilers and Compiler Tools
C

cDuce

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

Compilers and Compiler Tools
C

Compcert C Compiler

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

Compilers and Compiler Tools
E

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.

Compilers and Compiler Tools
H

Hack Programming Language

Compilers and Compiler Tools
H

Haxe Programming Language

Compilers and Compiler Tools
K

Kaleidoscope: Implementing a Language with LLVM...

Compilers and Compiler Tools
L

Liquid ML

Shopify's Liquid Templating language for OCaml.

Compilers and Compiler Tools
M

Mazeppa

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

Compilers and Compiler Tools
M

Menhir

– Menhir is a LR(1) parser generator for OCaml.

Compilers and Compiler Tools
M

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.

Compilers and Compiler Tools
N

Neko Programming Language

Originally the compiler was written in OCaml.

Compilers and Compiler Tools
O

Obelisk

... and , a neat project to produce readable LaTeX, HTML, or plain-text EBNF-style documentation for your grammar.

Compilers and Compiler Tools
O

OCaml-Java

OCaml to Java bytecode compiler.

Compilers and Compiler Tools
O

ocaml-parsing

See for a clearer example of using Menhir and Sedlex to produce a useful parser,

Compilers and Compiler Tools
O

ocamllex/ocamlyacc

– lex and yacc implementation for OCaml.

Compilers and Compiler Tools
O

Opa Programming Language

Compilers and Compiler Tools
O

Opal

– Self-contained monadic parser combinators for OCaml.

Compilers and Compiler Tools
Q

Quick C-- Target Language

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

Compilers and Compiler Tools
R

RaML

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

Compilers and Compiler Tools
R

Reason

Friendly syntax & toolchain for OCaml by Facebook.

Compilers and Compiler Tools
R

Rhine

– A Lisp on LLVM written in OCaml.

Compilers and Compiler Tools
R

Rust Programming Language

Originally written in OCaml before bootstrapping.

Compilers and Compiler Tools
S

Sedlex

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

Compilers and Compiler Tools
T

tis-interpreter

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

Compilers and Compiler Tools

Databases(23 items)

C

Caqti

Cooperative-threaded access to relational data

Databases
C

Caqti setence preparation, ppx_rapper

Databases
D

Dbm

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

Databases
D

dokeysto

dumb OCaml key-value store, string keys and string

Databases
F

Finally, Type-Safe, Extensible and Efficient La...

by Oleg and Co.

Databases
I

Implementing the Binary Memcached Protocol with...

Databases
I

Interfacing OCaml and PostgreSQL with Caqti

Databases
I

Irmin

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

Databases
M

Macaque

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

Databases
M

Mongo.ml

– An OCaml driver for Mongodb

Databases
M

mysql

– Bindings to libmysqlclient for interacting with MySQL databases.

Databases
M

mysql_protocol

– Implementation of MySQL Protocol with the Bitstring library.

Databases
O

Obigstore

— A database with BigTable-like data model atop LevelDB.

Databases
O

ocaml-redis

– Redis bindings for OCaml.

Databases
O

ORM

— ORM for SQLite.

Databases
P

PG'OCaml

— A type-safe interface to PostgreSQL in pure OCaml.

Databases
P

pgx

– A pure OCaml PostgreSQL client library.

Databases
P

PostgreSQL-OCaml

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

Databases
P

ppx_pgsql

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

Databases
R

RunOrg

It is a WIP database server written in OCaml.

Databases
S

Sequoia

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

Databases
S

SQLite3

— OCaml bindings to the SQLite3 database.

Databases
S

Sqlite3EZ

— Thin wrapper for SQLite3 with a simplified interface.

Databases

Developer Tools(33 items)

B

BetterOCaml

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

Developer Tools
B

Bisect_ppx

Developer Tools
C

codingground

– Compile and execute OCaml code online.

Developer Tools
C

ctypes

– Library for binding to C libraries using pure OCaml.

Developer Tools
G

ghim

– A command-line tool to manage Github Issues.

Developer Tools
J

Jupyter

– An OCaml kernel for the Jupyter notebook.

Developer Tools
L

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.

Developer Tools
L

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.

Developer Tools
M

merlin

– Context sensitive completion for OCaml in Vim and Emacs.

Developer Tools
M

merlin-eldoc

– Emacs package to provide merlin's features through eldoc.

Developer Tools
M

Modular foreign function bindings

Developer Tools
O

OCaml Debugger

– extension that provides OCaml Debugger for VSCode

Developer Tools
O

OCaml Yeoman Generator

– Yeoman generator to scaffold OCaml modules.

Developer Tools
O

ocaml-lsp

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

Developer Tools
O

ocaml-main-program-in-c

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

Developer Tools
O

OCaml: Learn & Code iOS app

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

Developer Tools
O

ocamlbrowser

– A source and compiled interface browser, written using LablTk. Included in the standard distribution for ocaml = 4.02.

Developer Tools
O

ocamlformat

A command-line tool to format OCaml code.

Developer Tools
O

ocp-browser

– Small ncurses-based API and documentation browser.

Developer Tools
O

ocp-indent

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

Developer Tools
O

ocp-index

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

Developer Tools
O

ocp-index-top

– Toplevel directive for looking up documentation using ocp-index.

Developer Tools
O

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.

Developer Tools
P

puml2xml

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

Developer Tools
P

Py.ml

OCaml bindings for Python.

Developer Tools
S

Sublime better ocaml

– Better OCaml mode for Sublime Text.

Developer Tools
S

Sublime text package

Developer Tools
S

Sublime text package

Developer Tools
T

Try OCaml

– Try OCaml in your web browser.

Developer Tools
T

tuareg

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

Developer Tools
U

utop

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

Developer Tools
V

Vim plugin

.

Developer Tools
V

vscode-ocaml

– extension that provides OCaml language support for VSCode

Developer Tools

Web Development(25 items)

A

atdjs

– atd code generator (serialization) for OCaml/jsofocaml.

Web Development
C

commonjs_of_ocaml

Easily import and export CommonJS modules from a jsofocaml project.

Web Development
C

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.

Web Development
C

Cumulus

– Hacker news like website with the OCaml framework Ocsigen

Web Development
D

dispatch

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

Web Development
D

Dream

Tidy Web framework for OCaml and ReasonML

Web Development
F

fmlib_browser

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

Web Development
G

gen_js_api

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

Web Development
G

Goji

– An OCaml bindings generator for JavaScript libraries.

Web Development
I

incr_dom

A library for building dynamic webapps, using Jsofocaml

Web Development
J

jingoo

– OCaml template engine almost compatible with jinja2.

Web Development
J

js_of_ocaml

– Jsofocaml is a compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser.

Web Development
L

Lambda Soup

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

Web Development
M

Markup.ml

Error-recovering streaming HTML5 and XML parsers, serializers.

Web Development
O

ocaml-mustache

– mustache.js logic-less templates in OCaml.

Web Development
O

ocaml-uri

– RFC3986 URI parsing library.

Web Development
O

ocaml-vdom

Elm architecture and (V)DOM for OCaml

Web Development
O

Ocamlnet

Web Development
O

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.

Web Development
O

Opium

– Sinatra like web toolkit for OCaml.

Web Development
R

ReScript

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

Web Development
R

routes

Typed routes for OCaml/ReasonML web applications.

Web Development
S

Syndic

– RSS and Atom feed parsing

Web Development
T

tyxml

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

Web Development
W

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.

Web Development