Web And Networking

HTTP Servers

  • cohttp: A lightweight HTTP server using either Lwt or Async.
  • httpaf: A high performance web server written in OCaml. Written as a response to a scaling deficiency found in cohttp.
  • Opium – Sinatra like web toolkit for OCaml.

Web Frameworks:

  • Ocsigen Eliom – Eliom is a full-featured multi-tier framework, for developing multi-platform Web and mobile apps as 100% OCaml distributed applications. It can also be used for more traditional Web or mobile apps: Web sites, single page applications, REST API, etc.
  • webmachine – A REST toolkit for OCaml. OCaml webmachine is a layer on top of cohttp that implements a state-machine-based HTTP request processor. It's particularly well-suited for writing RESTful APIs. As the name suggests, this is an OCaml port of the webmachine project.
  • Ohm - Ohm was an open source web framework for the OCaml language which is now dead.

Javascript Compiler

  • js_of_ocaml compiles OCaml bytecode to Javascript. It makes it possible to run OCaml programs in a browser, while sticking to the OCaml paradigms and ecosystem.
      • commonjs_of_ocaml: Easily import and export CommonJS modules from a js_of_ocaml project.
  • BuckleScript compiles OCaml to Javascript directly, prioritizing readability. The code lives in the Javascript ecosystem and generally requires a Javascript toolchain. ReasonML is enabled by this compiler.

Protocol Libraries

  • tyxml: build valid html using combinators. Leverages OCaml's type system.
  • ocurl: OCaml bindings to libcurl.
  • ocaml-dns – A pure OCaml implementation of the DNS protocol.
  • fluent-logger: A fluentd logger for OCaml.
  • charrua-unix - charrua-unix is a Unix DHCP daemon based on charrua-core
  • COW – Caml on the Web (COW) is a set of parsers and syntax extensions to let you manipulate HTML, CSS, XML, JSON and Markdown directly from OCaml code.
  • Ocamlnet: has many relevant networking libraries:
  • ocaml-uri – RFC3986 URI parsing library.
  • Goji – An OCaml bindings generator for JavaScript libraries.
  • Syndic – RSS and Atom feed parsing
  • ocaml-mustache – mustache.js logic-less templates in OCaml.
  • atdjs – atd code generator for OCaml/js_of_ocaml.
  • jingoo – OCaml template engine almost compatible with jinja2.
  • dispatch – Path-based dispatching for client- and server-side applications.
  • Lambda Soup - Functional HTML scraping and manipulation with CSS selectors, à la Python's Beautiful Soup.
  • Markup.ml - Error-recovering streaming HTML5 and XML parsers, serializers.
  • gen_js_api - gen_js_api aims at simplifying the creation of OCaml bindings for Javascript libraries.
  • slacko: command line interface to Slack.

OCaml Projects:

  • Cumulus: Hackernews-like website with the OCaml framework Ocsigen (demo is currently down).

ReasonML

  • Reason uses Bucklescript to create Javascript code that lives in the npm-world but leverages OCaml's type system.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License