Skip to content

Latest commit

 

History

History
70 lines (52 loc) · 2.6 KB

missing_pieces.md

File metadata and controls

70 lines (52 loc) · 2.6 KB
tags
ecosystem

Missing Pieces in the OCaml Ecosystem

This page details the things most lacking in the current ecosystem. If you're looking to contribute to OCaml but not sure where to focus your attention, this page should give you some ideas of where the community thinks work is needed.

It's worth keeping in mind that making the ecosystem just a little more usable, especially at critical points, can have massive implications downstream.

Documentation

  • odoc (needs help, high priority): the new standard documentation tool for OCaml. Unfortunately, it still needs some love -- check out the Issues. This is a great place to contribute since a little effort on the documentation front can go a long way.

Web and Networking

  • HTTP2 (high priority): no bindings. There are issues to provide HTTP2 support for both Cohttp and HTTP/AF. This is very important as it's currently a barrier to OCaml being used as a server language.

  • gRPC: no support. Requires HTTP2. There is an issue in the official project. There is also a discussion on the OCaml discourse.

  • Elasticsearch (needs help): the defacto standard search solution. ocaml-elasticsearch is abandoned.

  • GraphQL client (needs help): Having ppx_graphql support the full GraphQL spec opens up the possibility to interact with many APIs that expose a GraphQL endpoint including Github.

GUI

  • GTK3: no bindings.

Machine Learning

  • OWL (needs help): OCaml's equivalent to Numpy and Pytorch. Currently, the project doesn't support GPUs, which hurts its adoption by machine learning professionals.

Cloud Technology

Chat bots

  • Our current bots for the discord channel use node.js code which is fairly unreliable. For example, rss-bot - a bot for displaying rss feeds in discord - tends to run out of memory. We'd much prefer to have a Discord library in OCaml, and possibly a bot creation library. This may be a good starting point.