domainslib VS ocaml-interop

Compare domainslib vs ocaml-interop and see what are their differences.

domainslib

Parallel Programming over Domains (by ocaml-multicore)

ocaml-interop

OCaml<->Rust FFI with an emphasis on safety. (by tezedge)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
domainslib ocaml-interop
4 2
161 0
3.1% -
5.8 0.0
about 2 months ago over 1 year ago
OCaml Rust
ISC License 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.

domainslib

Posts with mentions or reviews of domainslib. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-15.
  • OCaml 5.0 Alpha Release
    5 projects | news.ycombinator.com | 15 Jun 2022
    For nested parallel computations (think Scientific Programming, where one would use OpenMP, Rust Rayon, etc), we have domainslib [1]. Eio, a direct-style, effect-based IO library is pretty competitive against Rust Tokio [2]. The performance will only get better as we get closer to the 5.0 release.

    [1] https://github.com/ocaml-multicore/domainslib

    [2] See the http server performance graphs at https://tarides.com/blog/2022-03-01-segfault-systems-joins-t...

  • PR to Merge Multicore OCaml
    10 projects | news.ycombinator.com | 21 Dec 2021
    1. Domains are the unit of parallelism. A domain is essentially an OS thread with a bunch of extra runtime book-keeping data. You can use Domain.spawn (https://github.com/ocaml-multicore/ocaml-multicore/blob/5.00...) to spawn off a new domain which will run the supplied function and terminate when it finishes. This is heavyweight though, domains are expected to be long-running.

    2. Domainslib is the library developed alongside multicore to aid users in exploiting parallelism. It supports nested parallelism and is pretty highly optimised (https://github.com/ocaml-multicore/domainslib/pull/29 for some graphs/numbers). The domainslib repo has some good examples: https://github.com/ocaml-multicore/domainslib/tree/master/te...

    3. We've not tested against other forms of parallelism. There isn't anything stopping you exploiting SIMD in addition to parallelism from domains.

    4. No, we've not compared performance by OS.

    5. No plans for the multicore team to look at accelerator integration at the moment.

  • The road to OCaml 5.0
    2 projects | /r/ocaml | 7 Oct 2021
    [3] Domainslib -- Parallel Programming over Multicore OCaml, https://github.com/ocaml-multicore/domainslib

ocaml-interop

Posts with mentions or reviews of ocaml-interop. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-15.
  • OCaml 5.0 Alpha Release
    5 projects | news.ycombinator.com | 15 Jun 2022
    OCaml is possibly my favorite language, along with Rust, and what I hope from the Santa is projects like https://github.com/tezedge/ocaml-interop to become mature.

    I think all these "properly typed" languages should aspire to have great interoperability: after all, they have types to help. But I realize there can be big technical difficulties in making it safe, in particular with garbage collection..

  • 2021 at OCamlPro
    6 projects | news.ycombinator.com | 18 Feb 2022

What are some alternatives?

When comparing domainslib and ocaml-interop you can also consider the following projects:

ocaml-multicore - Multicore OCaml

ocaml-rs - OCaml extensions in Rust

dune - A composable build system for OCaml.

drom - drom is a wrapper over opam/dune in an attempt to provide a cargo-like user experience. It can be used to create full OCaml projects with sphinx and odoc documentation. It has specific knowledge of Github and will generate files for Github Actions CI and Github pages.

ocaml - The core OCaml system: compilers, runtime system, base libraries

eioio - Effects-based direct-style IO for multicore OCaml

esy - package.json workflow for native development with Reason/OCaml

rescript-compiler - The compiler for ReScript.

melange - A mixture of tooling combined to produce JavaScript from OCaml & Reason

RFCs - Design discussions about the OCaml language