OCaml Ocaml

Open-source OCaml projects categorized as Ocaml | Edit details
Related topics: #Opam #Web #HTTP #Compiler #reasonml

Top 23 OCaml Ocaml Projects

  • GitHub repo reason

    Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems

    Project mention: Why You Should Learn Functional Programming | dev.to | 2021-11-26

    These new tools and perspectives empower you to write better programs even when you write in traditional languages. In fact, many modern extensions/frameworks have functional flavours added. See for example ReasonML and typescript. Learning functional programming will give you the necessary building blocks to pick up these frameworks quickly and correctly.

  • GitHub repo pyre-check

    Performant type-checking for python.

    Project mention: Statically typed Python | reddit.com/r/Python | 2021-11-30

    Facebook/Instagram uses Pyre which is a typechecker for Python.

  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo google-drive-ocamlfuse

    FUSE filesystem over Google Drive

    Project mention: I want to mount a Google Drive folder to my headless Ubuntu server. What's a good open source solution for it? | reddit.com/r/selfhosted | 2021-11-12

    Another option would be https://github.com/astrada/google-drive-ocamlfuse I use both of them.

  • GitHub repo ocaml

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

    Project mention: Fr, I'll do it | reddit.com/r/memes | 2021-11-02

    OCaml https://ocaml.org/

  • GitHub repo mirage

    MirageOS is a library operating system that constructs unikernels

    Project mention: writing kernel in haskell or ocaml. | reddit.com/r/osdev | 2021-10-26

    The main example of which is probably MirageOS

  • GitHub repo bap

    Binary Analysis Platform

    Project mention: Starting ocaml | reddit.com/r/ocaml | 2021-06-20

    I find this pretty good https://www.cs.cornell.edu/courses/cs3110/2019sp/textbook/intro/ocaml.html. Fun projects include compilers (pattern matching and static types are why Ocaml is usually selected), binary analysis stuff https://github.com/BinaryAnalysisPlatform/bap, stuff that requires async so you can try out nomadic async stuff, or really anything you desire.

  • GitHub repo merlin

    Context sensitive completion for OCaml in Vim and Emacs

    Project mention: Hoogle for Rust? | reddit.com/r/rust | 2021-08-03

    Instead of searching functions based on their type structure (like Hoogle), you could search for functions that "consume"/"produce" values of given types (like OCaml's Merlin). I think Rust already computes variance of type constructors, so such a tool just would have to obtain this information.

  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo dune

    A composable build system for OCaml.

    Project mention: Installing and using graphics post-4.08 | reddit.com/r/ocaml | 2021-10-28

    The best path here is to take five minutes and set up a dune build. The page at https://dune.build even gives you a small example to get started.

  • GitHub repo opam

    opam is a source-based package manager. It supports multiple simultaneous compiler installations, flexible package constraints, and a Git-friendly development workflow.

    Project mention: We feel it is too "me-too", and not Ada-specific enough [...] It doesn't, to us, feel like a truly Ada-native solution. Tangentially, the use of the word "crates" for the unit of management does little to evoke the kind of principled self-confidence Ada normally exudes. | reddit.com/r/programmingcirclejerk | 2021-11-07

    nodc. (not opam, don't care)

  • GitHub repo caramel

    :candy: a functional language for building type-safe, scalable, and maintainable applications

    Project mention: Is there a language like Erlang with a stricter type system? | reddit.com/r/erlang | 2021-09-02

    Take a look at Gleam and Caramel

  • GitHub repo SATySFi

    A statically-typed, functional typesetting system

    Project mention: Finl Is Not LaTeX | news.ycombinator.com | 2021-05-27

    There is also SATySFi[1] (another typesetting system in Ocaml), it is active but mainly in japanese.

    [1] https://github.com/gfngfn/SATySFi

  • GitHub repo dream

    Tidy, feature-complete Web framework

    Project mention: Dream – Tidy Web Framework for OCaml and ReasonML | news.ycombinator.com | 2021-04-09

    Yes. OCaml + all of the 3 OCaml-to-JS compilers support OCaml syntax.

    Dream itself demonstrates:

    - Server and client both written in Reason, using ocamlc+Melange https://github.com/aantron/dream/tree/master/example/r-fulls...

    That example could also have been written in OCaml syntax, because ocamlc (native) and Melange (JS) both support OCaml. However, Reason is nicer if you want to use React with JSX.

    - Server and client both written in OCaml, using ocamlc+Js_of_ocaml https://github.com/aantron/dream/tree/master/example/w-fulls...

    The remaining example uses Ocaml on the server and ReScript on the client, using the ReScript compiler. However, you could use OCaml on the client with the ReScript compiler. Just as with Melange, you would lose access to nice JSX syntax https://github.com/aantron/dream/tree/master/example/r-fulls...

    It's definitely a lot and not user-friendly to have to decide between all these options, but the community is experimenting greatly right now... so it's good and bad, and that's how it is :/

    As for Node.js, using ReScript syntax requires you to use Node.js on the native side, but that is the only coupling. If you write your native side in OCaml or Reason, you can compile it to native code with ocamlc (technically, ocamlopt is the internal command; nobody uses either one directly, but the build system calls them).

  • GitHub repo js_of_ocaml

    Compiler from OCaml to Javascript.

    Project mention: Is there a statically typed functional programming language that doesn't take purity so seriously? | reddit.com/r/functionalprogramming | 2021-06-01

    TL;DR: Reason is, and always has been, independent of ReScript (formerly BuckleScript) and is still actively maintained. If you want to use Reason or OCaml to make native code you can. If you want to compile JS from OCaml or Reason you also still can, but you'll want to use either js_of_ocaml or a BuckleScript fork named Melange that was made in response to the BuckleScript/ReScript people's shenanigans. And if you only care about JS-like syntax and JS output, you can use ReScript.

  • GitHub repo ocaml-multicore

    Multicore OCaml

    Project mention: Will rust ever have a futures executor in std? | reddit.com/r/rust | 2021-11-24

    For Algebraic Effects and Multicore OCaml specifically, I have this intro saved and they've been publishing regular updates here's October's. They have a paper linked from their repo's README but I don't remember the contents offhand.

  • GitHub repo ocaml-cohttp

    An OCaml library for HTTP clients and servers using Lwt or Async

    Project mention: Cohttp 4.0.0 | reddit.com/r/ocaml | 2021-03-24
  • GitHub repo lwt

    OCaml promises and concurrent I/O

    Project mention: Dream – Tidy Web Framework for OCaml and ReasonML | news.ycombinator.com | 2021-04-09

    Dream doesn't have much of a system call dependency footprint itself. It's basically just a convention for plugging request -> response functions into a web server. Some of its native dependencies will have to be replaced by Node equivalents. Soon after that, it would be portable to Node.

    There is already work underway to port Dream to Mirage, to run in unikernels: https://github.com/aantron/dream/pull/22

    Lwt, Dream's promise library, is itself getting ported to run on top of libuv: https://github.com/ocsigen/lwt/issues/813

    libuv is, of course, the I/O library that powers Node, so it might be practical to run Dream as a native node module very soon after doing this.

    (As an aside, I'm supposed to work on that libuv project, but instead I've been working on Dream :P)

  • GitHub repo httpaf

    A high performance, memory efficient, and scalable web server written in OCaml

    Project mention: The RustyHermit Unikernel: unikernel written in Rust | news.ycombinator.com | 2021-01-25

    Thanks for chiming in!

    Sadly cohttp is (or was) performing so bad that it is kind of at odds with using it on a unikernel.

    This one is quite a bit faster:

    https://github.com/inhabitedtype/httpaf

  • GitHub repo angstrom

    Parser combinators built for speed and memory efficiency

    Project mention: Is Ocaml From the beginning a good book? Where to learn about multicore Ocaml? Is this a good project skeleton? | reddit.com/r/ocaml | 2021-04-21

    Do you specifically need an LR(1) parser? If you just need to do some simple parsing, a parser combinator library like Angstrom works fine and is completely defined in OCaml code: https://github.com/inhabitedtype/angstrom

  • GitHub repo ocaml-containers

    A lightweight, modular standard library extension, string library, and interfaces to various libraries (unix, threads, etc.) BSD license.

    Project mention: I'm typecasting a lot, help | reddit.com/r/ocaml | 2021-09-10

    Instead of either, you might be interested in Containers. It's more like an extension of the OCaml stdlib where you can cherry-pick what you want to use instead of having to go all-or-nothing. Adds a lot of useful things but not in the opinionated "let's make OCaml a different language" way that Base does.

  • GitHub repo sihl

    A modular functional web framework

    Project mention: Dream – Tidy Web Framework for OCaml and ReasonML | news.ycombinator.com | 2021-04-09

    Really exciting to watch the developments in OCaml/Reason web frameworks/libraries. I love the language and wish I could use it instead of Ruby for my personal projects at least. Others that have caught my interest are:

    Sihl: https://github.com/oxidizing/sihl

    ReWeb: https://github.com/yawaramin/re-web/

    Of course, if you're interested in OCaml/Reason and don't know about Revery you're missing out.

  • GitHub repo lambdasoup

    Functional HTML scraping and rewriting with CSS in OCaml

    Project mention: The State of Web Scraping in 2021 | news.ycombinator.com | 2021-10-11

    OCaml’s Lambda Soup (https://aantron.github.io/lambdasoup/) is a amazing library/, especially for those that prefer functional programming

  • GitHub repo vult

    Vult is a transcompiler well suited to write high-performance DSP code

    Project mention: Emulating actual modules | reddit.com/r/vcvrack | 2021-05-13
  • GitHub repo bs-json

    Compositional JSON encode/decode library for BuckleScript

    Project mention: ReScript JSON Typed Strongly | dev.to | 2021-11-02

    As I told already, you might use other tools to create the codecs layer. Take bs-json if it feels better. Or even force Js.Json.t to DTO conversion with Obj.magic if you know what you do.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-11-30.

OCaml Ocaml related posts

Index

What are some of the best open-source Ocaml projects in OCaml? This list will help you:

Project Stars
1 reason 9,545
2 pyre-check 5,692
3 google-drive-ocamlfuse 4,426
4 ocaml 3,491
5 mirage 1,696
6 bap 1,539
7 merlin 1,364
8 dune 1,160
9 opam 959
10 caramel 906
11 SATySFi 877
12 dream 720
13 js_of_ocaml 704
14 ocaml-multicore 698
15 ocaml-cohttp 560
16 lwt 544
17 httpaf 489
18 angstrom 478
19 ocaml-containers 384
20 sihl 312
21 lambdasoup 306
22 vult 298
23 bs-json 274
Find remote jobs at our new job board 99remotejobs.com. There are 32 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com