Why OCaml
Find out about OCaml's history and how it became what it is today.
Industrial Users
Discover the organisations that use OCaml to accomplish their goals.
Academic Excellence
Learn about the academics that research programming language technology.
Success Stories
Read about the things that have been achieved using OCaml.
Language
Read through the OCaml tutorial, official manual and books.
Packages
Browse the third-party packages published in the OCaml ecosystem.
Applications
Learn techniques for building tools and applications in OCaml.
Best Practices
Adopt the best known methods for development from the OCaml community.
Opportunities
Explore vacancies in projects and companies and see where you could fit in.
News
Catch up on the latest news from the OCaml sphere!
Around the Web
A bit of everything, this page encapsulates OCaml's presence online, blogposts, videos, and mailing lists all live here.
Archive
Can't find what you're looking for? Try searching the Archive.
Explore Workflows in OCaml.
Navigating OCaml Projects
Learn how to navigate and read OCaml projects to help you use and understand other projects
Starting a new Project
Build the scaffolding for your solution to a problem
Finding Answers to your Questions
Find answers, whether you are just starting out, have complicated theoretical questions or want to know more about building OCaml projects
Getting Started
Write and run OCaml code quickly
Teaching OCaml
Teach OCaml using Jupyter notebooks or online resources
Debugging and Exploring OCaml Projects
Learn how to effectively debug your OCaml projects and explore packages
Configuring OCaml Tools for your Editor
Add syntax highlighting and code completion to your editor
Keeping your Code Clean
Indent and apply formatting styles to your project
Checking Code Coverage
Use the Bisect tool to discover how much of your code is being tested
Compiling for Y on X
Compile code to run on different computer architectures
Running OCaml in your Browser
Use js_of_ocaml to run OCaml code in the browser and interoperate with Javascript libraries from OCaml
Writing Scientific Computing Applications
Use the OWL library to build scientific computing applications in OCaml
Meta-programming with PPX
Automate code-generation with meta-programming
Setting up Continuous Integration
Add CI to your project using Github Actions
Fuzz Testing your Project
Make fuzz tests to find uncover hard to find bugs in your code
Adding Unit Tests to your Project
Write tests to check the functionality of your code using Alcotest
Publishing a Package on Opam
Share your libraries or applications with the community
Documenting your Project
Write maintainable and useful documentation for your library
Incorporating non-OCaml Code into your Project
Add C code to your OCaml project
Using Tools Written in OCaml
Run tools built with OCaml
Fixing Bugs in 3rd Party Packages
Track down and fix bugs in libraries that you use
Profiling your Project
Profile the memory and performance of your application