ocaml
The core OCaml system: compilers, runtime system, base libraries (by ocaml)
dune
A composable build system for OCaml. (by ocaml)
ocaml | dune | |
---|---|---|
129 | 30 | |
5,727 | 1,717 | |
1.4% | 1.4% | |
9.9 | 9.8 | |
6 days ago | 2 days ago | |
OCaml | OCaml | |
GNU General Public License v3.0 or later | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ocaml
Posts with mentions or reviews of ocaml.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2025-01-26.
-
Hedy: Textual Programming Made Easy
Most recent I remember was in 2011: https://github.com/ocaml/ocaml/issues/5419
- OCaml 5.3 Released
- Non-temporal store heuristics on the Apple M2
-
TypeScript's Lack of Naming Types and Type Conversion in Angular
Elm, ReScript, F#, Ocaml, Scala… it’s just normal to name your types, then use them places. In fact, you’ll often create the types _before_ the code, even if you’re not really practicing DDD (Domain Driven Design). Yes, you’ll do many after the fact when doing functions, or you start testing things and decide to change your design, and make new types. Either way, it’s just “the norm”. You then do the other norms like “name your function” and “name your variables”. I’m a bit confused why it’s only 2 out of 3 (variables and functions, not types) in this TypeScript Angular project. I’ll have to look at other internal Angular projects and see if it’s common there as well.
-
Whence '\N'?
It does, it links to this: https://github.com/ocaml/ocaml/blob/4d6ecfb5cf4a5da814784dee...
-
My first experience with OCaml
open Monitoring let test_get_websites_from_file () = let websites = Config.get_websites_from_file "test_websites.yaml" in assert (List.length websites = 2); let first = List.hd websites in assert (first.url = "https://ocaml.org"); assert (first.interval = 20) let () = Unix.chdir "../../../test/"; test_get_websites_from_file ();
- My first experience with Gleam Language
-
ReScript has come a long way, maybe it's time to switch from TypeScript?
Ocaml is still a wonderful language if you want to look into it, and Reason is still going strong as an alternate syntax for OCaml. With either OCaml or Reason you can compile to native code, or use the continuation of BuckleScript now called Melange.
dune
Posts with mentions or reviews of dune.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2025-01-24.
-
ABEND dump #15
I’ve been writing some OCaml code lately and using dune as the build system.
- (OCaml) dune developer preview
-
Tagging OCaml packages
If you are using the dune build system, add the tag(s) to your dune-project file's package stanza. E.g.:
-
NextJS, the App Router and ReasonReact
One way to get around this is to modify the api/dune file with (include_subdirs qualified); this means that every subdirectory of api/ can be referenced by module namespacing and we don't have to write dune files for every route (or pages) folder. However, the OCaml LSP does not like it and red squiggles will show up in the editor (although the app with still compile without errors). Trying to develop the app knowing those red squiggles cannot be vanquished would drive me nuts, so instead of using (include_subdirs qualified) I just wrote dune files for every route (and page) which gets rid of the red squiggles.
-
Generating .ml test cases from a glob of text files in a directory using dune
2) Neither would having all source/targets specified, as that would entail listing them all in the dune file as wildcard rules is apparently still not a thing: https://github.com/ocaml/dune/issues/307
-
Dune build
There is a small example on the dune home page: https://dune.build/
- The YAML Document from Hell
-
Ask HN: Programs that saved you 100 hours? (2022 edition)
Dune (https://dune.build/) is the preeminent build tool for OCaml development. I don't love its input syntax (s-expressions), and I sometimes miss the ability to write high-level functions to reduce boilerplate (especially for unit tests), but it always gets the dependencies right, and it's fast. This is in stark contrast to some of my experiences with various other build systems, and I am super happy that the default option for OCaml build systems is so good.
- Help getting started with Ocaml
-
Faster Incremental Builds with Dune 3
It's still weird because dune's own site only makes Jane Street references: https://dune.build/.
What are some alternatives?
When comparing ocaml and dune you can also consider the following projects:
VisualFSharp - The F# compiler, F# core library, F# language service, and F# tooling integration for Visual Studio
statsd-filter-proxy-rs - A filter proxy for StatsD
Alpaca-API - The Alpaca API is a developer interface for trading operations and market data reception through the Alpaca platform.
plotkicadsch - This project aims at being able to export Kicad v5 Sch files to structured picture files
TradeAlgo - Stock trading algorithm written in Python for TD Ameritrade.
CorrinoEngine - CorrinoEngine is an open-source project which will recreate the Emperor : Battle for Dune