Awesome
Awesome OCaml
A curated list of awesome frameworks, libraries, tools, and resources for the OCaml programming language.
Contents
- Libraries
- Tools
- Build Tools and Package Managers
- IDEs and Editors
- Learning Resources
- Books
- Community
- Contribute
- License
Libraries
Core Libraries
- OCaml Standard Library - The official standard library of OCaml.
- Base - A Jane Street alternative to the OCaml standard library with additional features and improvements.
- Core - An industrial-strength alternative standard library by Jane Street.
- Containers - A lightweight extension of the OCaml standard library.
Data Structures and Algorithms
- Batteries - An alternative standard library providing additional data structures and utilities.
- OCamlgraph - A library for graph data structures and algorithms in OCaml.
- Seq - A library providing a sequence data type with various utilities.
Web Frameworks
- Opium - A lightweight and modular web framework for OCaml, inspired by Express.js.
- Ocsigen Eliom - A powerful framework for full-stack web applications in OCaml.
- Dream - A modern, type-safe web framework for building reliable web applications in OCaml.
- Cohttp - A lightweight HTTP server and client library for OCaml.
Testing
- Alcotest - A lightweight and colorful test framework for OCaml.
- OUnit - A unit testing framework for OCaml, similar to JUnit.
- QCheck - A property-based testing library inspired by Haskell's QuickCheck.
Concurrency and Parallelism
- Async - A library for asynchronous programming, designed by Jane Street.
- Lwt - A cooperative threading library for OCaml, providing lightweight threads.
- Domainslib - A parallel programming library for OCaml's multicore runtime.
Graphics and Visualization
- Graphics - The OCaml Graphics library for basic graphics operations.
- Vg - A declarative 2D vector graphics library for OCaml.
- Plotkic - A simple and lightweight plotting library for OCaml.
Tools
- OCamlFormat - A tool for automatically formatting OCaml code.
- Merlin - An editor helper that provides autocompletion and type-checking for OCaml.
- utop - An enhanced interactive toplevel (REPL) for OCaml with autocompletion.
- dune - A popular build system for OCaml projects, focused on simplicity and speed.
Build Tools and Package Managers
- OPAM - The OCaml Package Manager, a tool for managing OCaml libraries and dependencies.
- Dune - A build system for OCaml, designed for reliability and speed.
- esy - A package manager for native projects, including OCaml.
IDEs and Editors
- VS Code - Supports OCaml via the OCaml Platform extension.
- Vim - Configure with ocaml-lsp and Merlin for a powerful OCaml development environment.
- Emacs with Tuareg Mode - An OCaml major mode for Emacs, supporting OCaml syntax highlighting and integration with Merlin.
- IntelliJ IDEA - Supports OCaml via the OCaml Plugin.
Learning Resources
- Real World OCaml - A comprehensive and practical guide to OCaml programming.
- OCaml.org Learning Resources - Official tutorials and guides for learning OCaml.
- CS3110: Data Structures and Functional Programming - A Cornell University course on OCaml programming.
- OCaml MOOC - A free online course on functional programming with OCaml.
Books
- Real World OCaml by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey - A practical book on OCaml programming.
- OCaml from the Very Beginning by John Whitington - An introduction to OCaml for beginners.
- Functional Programming in OCaml by Michael R. Clarkson - A book focused on functional programming techniques in OCaml.
- Unix System Programming with OCaml by Xavier Leroy - A book on system programming using OCaml.
Community
- OCaml Discuss - The official forum for OCaml discussions.
- Reddit: r/ocaml - A subreddit for OCaml-related news, questions, and discussions.
- OCaml Discord - A chat server for the OCaml community.
- Stack Overflow: OCaml - A Q&A site for OCaml programming questions.
Contribute
Contributions are welcome!