This page describes the current state of the OCaml ecosystem.
- check.ocamllabs.io: View current build status of the entire OPAM ecosystem.
- The OCaml Platform: a community endeavor to standardize the infrastructure in the OCaml world.
- Community poll on OCaml: How the community views the language and ecosystem.
For a list of things currently missing in OCaml’s ecosystem, see Help Needed
For an overview of the different standard library options and recommendations, see Standard Libraries.
Data Structures and Algorithms
Build System/Package Management
- aws-s3: Access to Amazon’s Simple Storage Solution (S3)
- Google Drive OCamlFuse: A User file system for Google Drive. Also one of the few ways to sync Google Drive from Linux.
- aws-lambda: OCaml runtime for AWS Lambda.
See Code Tools
Command Line Arguments
For compilation tools made in OCaml, see Compilers
Concurrency, Parallelism, Distributed Computing
- OCaml comes with a built-in debugger for the bytecode compiler.
You invoke it with the
ocamldebugcommand. See the manual for more details.
- The easiest way to debug OCaml code, other than inserting print statements, is choosing bytecode as your compilation target, and using teh OCaml debugger.
- Additionally, one can use
gdbto debug native code.
- ocamlearlybird: Debug Adapter Protocol implementation for OCaml. Allows integrating the OCaml debugger with an IDE.
- ocaml-dap: Generic Debug Adapter Protocol implementation in OCaml.
Formal Software Verification
For manipulating different file formats from OCaml, see File Formats
See File Manipulation.
Foreign Function Interface
For integrating with C, C++, Python etc., see Foreign Function Interface.
Functional Reactive Programming
For graphic libraries, see Graphics.
For usage of OCaml in hardware design, see Hardware Design
Accessors: a Lens library (easy access/functional updates to records).
Machine Learning, Data Science, Scientific Computing
Metaprogramming and PPX
See Metaprogramming for metaprogramming facilities such as PPX, camlp4 and MetaOCaml.
See Mobile for compilation of OCaml to mobile platforms.
See Pretty Printing.
See Process Management.
For support of protocols, see Protocols
For search-related libraries, see Searching
For static analysis using OCaml, see Static Analysis
For low-level systems programming, see Systems Programming
For testing frameworks in OCaml, see Testing
Time and Date
- For short-term timing requirements, Sys.time can do the job.
- mtime: wall-clock monotonic time, and the best choice for longer-running timing requirements.
- ptime: POSIX time.
For GUIs and TUIs (Terminal User Interfaces), see User Interface
Web and Networking
For libraries related to web development and networking, see Web and Networking