跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) angular(82) LLM(78) 大语言模型(63) 人工智能(53) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(33) Go基础(29) Python(24) Vue(22) Web开发(20) Web技术(19) 精选资源(19) 深度学习(19) Java(18) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) 安卓(11) 聊天机器人(10) typescript(10) 资料精选(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) ChatGPT(9) LLMOps(9) Go语言中级开发(9) 自然语言处理(9) PostgreSQL(9) 区块链(9) mlops(9) 安全(9) 全栈开发(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 软件架构(7) RAG(7) Go语言高级开发(7) AWS(7) C++(7) 数据科学(7) whisper(6) Prisma(6) 隐私保护(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 智能体(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 提示工程(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) kafka(5) 推荐系统(5) WebAssembly(5) GameDev(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) 编程语言(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) nextjs(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) RAG架构(3) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) 语言模型(2) 可穿戴设备(2) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) 数据分析(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)
SEO Title

A curated list of references to awesome OCaml tools, frameworks, libraries and articles. Additionally there is a collection of freely available bookspapers and presentations.

If you're looking for comprehensive community-driven content about OCaml visit 📚OCamlverse!

For a quick introduction to the modern OCaml development workflow consult the Up and Running with OCaml tutorial.

Your favorite package is not listed? Fork and create a Pull Request to add it!

Contents


Community

Algorithms and Data Structures

Application Libraries

  • Batteries Included – A community-maintained foundation library for your OCaml projects.
  • Cmdliner – Declarative definition of command line interfaces for OCaml.
  • Core – Jane Street Capital's full-fledged standard library overlay. A portable subset of Core is also available: Core_kernel.
  • Base - Jane Street Capital's dependency-free, quick-compiling, fully-portable across any environment that can run OCaml code standard library.
  • React – React is an OCaml module for functional reactive programming (FRP). It provides support to program with time varying values: declarative events and signals.
  • Minicli – Minimalist library for command line parsing.
  • easy-format – Pretty-printing library for OCaml.
  • ocaml-rpc – Light library to deal with RPCs in OCaml.
  • ocaml-containers – A lightweight, modular standard library extension, string library and interfaces to various libraries (bigarrays, unix, etc...). BSD license.

Benchmarking

Blogs

Books

  • More OCaml: Algorithms, Methods, and Diversions – In More OCaml John Whitington takes a meandering tour of functional programming with OCaml, introducing various language features and describing some classic algorithms. The book ends with a large worked example dealing with the production of PDF files. There are questions for each chapter together with worked answers and hints.
  • How to Think Like a (Functional) Programmer by Allen Downey and Nicholas Monje – How to Think Like a Computer Scientist is an introductory programming textbook based on the OCaml language. It is a modified version of Think Python by Allen Downey. It is intended for newcomers to programming and also those who know some programming but want to learn programming in the function-oriented paradigm, or those who simply want to learn OCaml.
  • OCaml from the Very Beginning by J. Whitington - OCaml from the Very Beginning will appeal both to new programmers, and experienced programmers eager to explore functional languages such as OCaml.
  • Pearls of Functional Algorithm Design by Richard Bird - It summaries 30 hard algorithm problems in function programming world. Although it is for Haskell, the algorithm problems are very interesting and trying to solve them in OCaml also helps the thinking of functional programming. Partial solutions in OCaml are here.
  • Real World OCaml by Y. Minsky, A. Madhavapeddy and J. Hickey - Functional programming for the masses.
  • Unix System Programming in OCaml by X. Leroy and D. Rémy – Introduction to Unix system programming, with an emphasis on communications between processes.
  • Using, Understanding, and Unraveling OCaml – This book describes both the OCaml language and the theoretical grounds behind its powerful type system.
  • Purely Functional Data Structures - This is the first or only book focus on various data structures in FP world. A must-read one.
  • OCaml for Scientists - by Jon Harrop.
  • Functional Programming in OCaml: A Principled Approach - Textbook for CS 3110 Functional Programming in OCaml, Cornell University.

Code Analysis and Linters

  • Mascot - Mascot is a style-checker for OCaml sources
  • pfff – pfff is a set of tools and APIs to perform some static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.
  • Infer - Infer is a static analyzer for Java, C and Objective-C
  • Frama-C - Frama-C is a static analysis and formal proof framework for C and C++
  • flow - flow is a static type checker for JavaScript
  • SLAyer - SLAyer is an automatic formal verification tool that uses separation logic to verify memory safety of C programs.
  • MemCAD - MemCAD is an abstract interpreter for shape analysis. MemCAD can verify C programs manipulating complex data structures.
  • Camelot - Camelot is a modular and fully configurable OCaml linter and stylechecker.

Program analysis

  • BAP - BAP is a reverse engineering and program analysis platform that targets binary programs.
  • BinCat - BinCat is a binary code static analysis toolkit.
  • cwe_checker - cwe_checker finds vulnerable patterns in binary executables.

Compilers and Compiler Tools

Concurrency

Two concurrency libraries exist in OCaml: Lwt and Async. They provide very similar functionality but make radically different decisions with regards to error handling and internal implementation details (see the links below for more details). Real World OCaml uses Async but a version of the code examples translated to Lwt is also available.

There is also an ongoing experimental project to make OCaml multiprocessor and multicore aware at OCaml multicore fork.

Databases

  • Bindings

    • Dbm — A binding to the NDBM/GDBM Unix "databases".
    • Mongo.ml – An OCaml driver for Mongodb
    • PG'OCaml — A type-safe interface to PostgreSQL in pure OCaml.
      • ppx_pgsql – A syntax extension for embedded SQL queries using PG'OCaml.
    • PostgreSQL-OCaml — An interface to PostgreSQL through the C API (libpq).
    • SQLite3 — OCaml bindings to the SQLite3 database.
    • Sqlite3EZ — Thin wrapper for SQLite3 with a simplified interface.
    • ocaml-redis – Redis bindings for OCaml.
    • mysql – Bindings to libmysqlclient for interacting with MySQL databases.
    • pgx – A pure OCaml PostgreSQL client library .
    • mysql_protocol – Implementation of MySQL Protocol with the Bitstring library.
  • New Implementations

    • Irmin — A distributed database that follows the same design principles as Git.
    • Obigstore — A database with BigTable-like data model atop LevelDB.
    • RunOrg - It is a WIP database server written in OCaml.
    • dokeysto - dumb OCaml key-value store, string keys and string values. Optional on-the-fly LZ4 compression of values or tokyocabinet backend.
  • Overlays

    • Sequoia - Sequoia is a type-safe query builder for MySQL/MariaDB and PostgreSQL
    • Macaque — Macaque is a library for safe and flexible database queries using comprehensions on top of PG'OCaml.
    • ORM — ORM for SQLite.
    • Caqti - Cooperative-threaded access to relational data
  • Articles:

Datetime

Developer Tools

  • Try OCaml – Try OCaml in your web browser.

  • BetterOCaml – An efficient, intuitive and cross-platform web IDE with your OCaml code interpreted and running in your browser!

  • codingground – Compile and execute OCaml code online.

  • OCaml: Learn & Code iOS app - Learn and execute OCaml code from your iPhone/iPad/Mac.

  • Jupyter – An OCaml kernel for the Jupyter notebook.

  • utop – Universal toplevel for OCaml with support of multiline edition, history, real-time and context sensitive completion, colors, and more.

  • ocamlformat - A command-line tool to format OCaml code.

  • ocamlbrowser – A source and compiled interface browser, written using LablTk. Included in the standard distribution for ocaml <= 4.01 and with labltk for ocaml >= 4.02.

  • ghim – A command-line tool to manage Github Issues.

  • OCaml Yeoman Generator – Yeoman generator to scaffold OCaml modules.

  • Foreign Function Interface:

  • Editor Integration:

    • ocaml-lsp - An LSP language server for OCaml that integrates with any editor that understands LSP like VSCode, Vim and Emacs.
    • merlin – Context sensitive completion for Ocaml in Vim and Emacs.
    • tuareg - OCaml mode for Emacs that can run the toplevel and the debugger within Emacs.
    • merlin-eldoc – Emacs package to provide merlin's features through eldoc.
    • vscode-ocaml – extension that provides OCaml language support for VSCode
    • OCaml Debugger – extension that provides OCaml Debugger for VSCode
    • Sublime better ocaml – Better OCaml mode for Sublime Text.
    • ocp-index – Easy access to the interface information of installed OCaml libraries. Provides standalone tools like ocp-browser and ocp-grep.
    • ocp-indent – Indentation tool for OCaml, to be used from editors like Emacs and Vim.
  • Code coverage:

Exercises and Short Examples

Formal Software Verification

  • Coq – Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.
  • Why3 – Why3 is a platform for deductive program verification. It provides a rich language for specification and programming, called WhyML, and relies on external theorem provers, both automated and interactive, to discharge verification conditions.
  • Alt-Ergo – Alt-Ergo is an open-source SMT solver dedicated to the proof of mathematical formulas generated in the context of program verification.

General

Graphics

  • 2D
    • archimedes — 2D plotting library.
    • cairo2 — Binding to Cairo, a 2D Vector Graphics Library. Integrates well with lablgtk.
    • Vg – Declarative 2D vector graphics for OCaml.
  • 3D
    • glMLite — OpenGL bindings for OCaml. Provides an (experimental) functional API. (homepage)
    • lablgl — Interface to OpenGL. Integrates well with lablgtk.
    • tgls — Thin bindings OpenGL 3.{2,3},4.{0,1,2,3,4} and OpenGL ES {2,3}.

Internationalization

  • Camomile — A Unicode library for OCaml.
  • ocaml-m17n — Multilingualization for OCaml source code. Allows using Unicode identifiers in OCaml source code.
  • Uucd — Unicode character database decoder for OCaml.
  • Uucp — Unicode character properties for OCaml.
  • Uunf — Unicode text normalization for OCaml.
  • Uuseg — Unicode text segmentation for OCaml.
  • Uutf — Non-blocking streaming Unicode codec for OCaml.

User Interface

  • lablgtk — GTK2 and GTK3 bindings for OCaml with various higher-level facilities to define GUIs.
  • lablqml – QML Qt5 bindings for OCaml.
  • labltk — Interface to the Tcl/Tk GUI framework. In the standard distribution for ocaml <= 4.01.
  • TSDL – Tsdl is an OCaml module providing thin bindings to the cross-platform SDL library.
  • Lambda-Term – Lambda-Term is a cross-platform library for manipulating the terminal. It provides an abstraction for keys, mouse events, colors, as well as a set of widgets to write curses-like applications.
  • Notty - Notty is a declarative terminal library for OCaml, structured around a notion of composable images.
  • ocaml-linenoise - Self-contained OCaml bindings to linenoise, easy high level readline functionality in OCaml.

Language-related

Large Source Code Examples

  • Base - Standard library for OCaml
  • cil - C Intermediate Language
  • coq - formal proof management system
  • Dark - a combined language, editor, and infrastructure to make it easy to build backends
  • frama-c - platform dedicated to the analysis of source code written in C
  • libguestfs - library and tools for accessing and modifying virtual machine disk images
  • Liquidsoap - a swiss-army knife for multimedia streaming, notably used for netradios and webtvs
  • mirage - library operating system that constructs unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms
  • MLDonkey - cross-platform multi-network peer-to-peer daemon
  • Oni2 - Native, lightweight modal code editor
  • pfff - an OCaml API to write static analysis, dynamic analysis, code visualizations, code navigations, or style-preserving source-to-source transformations such as refactorings on source code.
  • WHY3 - platform for deductive program verification
  • xen-api - management stack that configures and controls Xen-enabled hosts and resource pools, and co-ordinates resources within the pool

Logging

  • dolog – A dumb OCaml logger.
  • Volt – A variant of Bolt OCaml logging tool.
  • Logs - Logs provides a logging infrastructure for OCaml.

Machine Learning

Messaging

  • ocaml-zmq – ZeroMQ bindings for OCaml with Async and Lwt wrappers.
  • onanomsg – nanomsg bindings for OCaml.
  • Kafka – OCaml bindings for Apache Kafka.
  • AMQP – AMQP client library for Async and Lwt.
  • MPI – Message Passing Interface bindings for OCaml.
  • MQTT – OCaml implementation of the MQTT pubsub protocol.
  • capnp-ocaml – OCaml code generator plugin for the Cap'n Proto serialization framework.

Metaprogramming

Metrics

  • prometheus – OCaml client library for Prometheus monitoring.

Mobile Applications

Networking

  • HTTP Tools:
    • ocaml-cohttp – Very lightweight HTTP server using Lwt or Async.
    • ocurl – OCaml bindings to libcurl.
    • httpaf – A high performance, memory efficient, and scalable web server written in OCaml.
    • piaf - Client/server library for HTTP/1.X / HTTP/2 written entirely in OCaml.
  • ocaml-dns – A pure OCaml implementation of the DNS protocol.
  • fluent-logger – Fluentd logger for OCaml.
  • charrua-unix - charrua-unix is a Unix DHCP daemon based on charrua-core.

Online Courses

Package Management

  • Distribution:

    • OPAM – A flexible Git-friendly package manager with multiple compiler support.
    • ocamlfind — Local OCaml library manager. Used by most of the OCaml ecosystem.
    • OCaml for Windows - opam repository and experimental build for Windows.
    • makorel – Release OPAM packages easily.
    • esy - package.json workflow for native development with Reason/OCaml.
  • Build Tools:

    • dune – A composable and opinionated build system for OCaml (former jbuilder)
    • Oasis - A tool to integrate a configure, build and install system in your OCaml project. It helps to create standard entry points in your build system and allows external tools to analyse your project easily.
      • oasis2opam — Tool to convert OASIS metadata to OPAM package descriptions.
    • obuild – Simple package build system for ocaml.
    • ocaml-makefile — Easy to use Makefile for small to medium-sized OCaml-projects.
    • topkg — OPAM-aware packaging system using ocamlbuild.
    • Bazel - OCaml rules for Bazel, Google's multi-language and platform build tool.

Parallelism

(Note: Sorted from the easier to use to the more flexible.)

  • Libraries:

    • Parmap — Provides easy-to-use parallel map and fold functions.
    • ForkWork — A simple library for forking child processes to perform work on multiple cores.
    • Functory — A distributed computing library which facilitates distributed execution of parallelizable computations in a seamless fashion.
    • Rpc.Parallel — A library for spawning processes on a cluster of machines, and passing typed messages between them.
    • Ocamlnet — An enhanced system platform library. Contains the netmulticore library to compute tasks on as many cores of the machine as needed.
    • Nproc – Process pool implementation for OCaml.
    • Parany – Parallelize computation over independent items, even if there is an infinite number of them.
    • Sklml – Functional parallel skeleton compiler and programming system for OCaml programs.
    • SPOC - Libraries and syntax extensions to offload intensive computations to parallel accelerators (multicore CPUs, GPUs and other accelerators compatible with GPGPU frameworks).
  • Articles:

Project Starter Templates

  • drom - The drom tool is a wrapper over opam/dune in an attempt to provide a cargo-like user experience.
  • spin - Reason and Ocaml project generator
  • modern-ocaml - Template for an ocaml project with modern tooling

Questions

Science and Technical Computing

  • biocaml – OCaml Bioinformatics Library http://biocaml.org.
  • bistro – OCaml library for building bioinformatics pipelines.
  • lacaml - OCaml bindings for BLAS/LAPACK (high-performance linear algebra Fortran libraries).
  • obandit - OCaml library for multi-armed bandits.
  • onumerical – Numerical library for OCaml.
  • oml - OCaml library for general numerical work.
  • ocephes - Bindings to frequently used C special functions library.
  • slap - A linear algebra library in OCaml with type-based static size checking for matrix operations.
  • tensorflow-ocaml – OCaml bindings for TensorFlow.
  • owl - OCaml numerical library: dense and sparse matrix, linear algebra, regressions, maths and stats functions.

Regular Expressions

  • Re – a pure OCaml regular expressions library with combinators, supporting several formats (glob, posix, str...)
  • ocaml-pcre – bindings to the PCRE library (perl-compatible regular expressions)
  • Humane-re – Humane-re attempts to provide an easy interface for 90% of your regex needs Courtesy of ocaml-re
  • Tyre - Tyre is a set of combinators to build type-safe regular expressions, allowing automatic extraction and modification of matched groups.

Security and Cryptography

  • ocaml-tls – TLS in pure OCaml.
  • Digestif - Hash algorithms (like SHA* or BLAKE2*) in OCaml and C.
  • cryptokit – The Cryptokit library for OCaml provides a variety of cryptographic primitives that can be used to implement cryptographic protocols in security-sensitive applications.
  • nocoiner - A Commitment Schemes library for Multi-party Computations such as online Auctions and Gambling.
  • nocrypto – A small cryptographic library behind the ocaml-tls project. It is built to be straightforward to use, adhere to functional programming principles and able to run in a Xen-based unikernel.

Note: The differences between nocrypto and cryptokit cryptographic libraries are described in the following blog post: OCaml-TLS: building the nocrypto library core.

Semantic Technology

  • OCaml-RDF – OCaml library to manipulate RDF graphs and execute Sparql queries.

Serialization

  • bencode — Bencode (.torrent file format) reader/writer.
  • biniou – Extensible binary data format, like JSON but faster.
  • cbor — OCaml native CBOR decoder/encoder.
  • jsonm — Non-blocking streaming JSON codec for OCaml.
  • xmlm — A streaming codec to decode and encode the XML data format.
  • yojson — An optimized parsing and printing library for the JSON format.
  • sexplib – A S-expression parser and printer

System Programming

  • Mirage OS – Mirage is a programming framework for constructing secure, high-performance network applications across a variety of cloud computing and mobile platforms.

  • ocaml-fat – Read and write FAT format filesystems from OCaml.

  • ocaml-git – Pure OCaml low-level git bindings.

  • ocaml-vchan – Pure OCaml implementation of the "vchan" shared-memory communication protocol.

  • Embedded systems

    • OMicroB - A virtual machine designed to run OCaml bytecode on AVR (Arduino for instance) micro-controlers.
    • OCaPIC - An OCaml virtual machine for PIC18 micro-controlers.
    • ocaml-esp32 - A compiler for ESP32 SoC.

Testing

  • Alcotest – A lightweight and colourful test framework.
  • OUnit – OUnit is a unit test framework for OCaml. It allows one to easily create unit-tests for OCaml code. It is based on HUnit, a unit testing framework for Haskell.
  • QCheck — QCheck is a property testing library inspired from Haskell's QuickCheck
  • iTeML (formerly known as qtest) — supports inline pragma's to generate tests.
  • Kaputt — comprehensive testing framework.
  • Pa_test — General inline testing macro's.
  • TestSimple - A lightweight unit testing framework compatible with the Test Anything Protocol.
  • expect-test — A framework for writing tests in OCaml, similar to Cram, developed by JaneStreet.

Utilities

  • ocaml-cuid - Collision-resistant IDs for server scalability & database performance.
  • Uuidm - Uuidm is an OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122.

Web Development

  • Frameworks:

    • Opium – Sinatra like web toolkit for OCaml.
    • 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.
    • Dream - Tidy Web framework for OCaml and ReasonML
    • 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.
    • incr_dom - A library for building dynamic webapps, using Js_of_ocaml
    • ocaml-vdom - Elm architecture and (V)DOM for OCaml
  • Tools:

    • 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 web libraries — Nethtml html parser, Netasn1 for ASN.1 parsing, Netencoding for Base64, Quoted Printable, URL encoding and HTML escaping, Netmime for MIME processing, etc. See the list of modules in Ocamlnet's manual.
    • tyxml — Library to build valid (according to the W3C spec) Html and Svg trees.
    • js_of_ocaml – Js_of_ocaml is a compiler of OCaml bytecode to Javascript. It makes it possible to run Ocaml programs in a Web browser.
      • commonjs_of_ocaml - Easily import and export CommonJS modules from a js_of_ocaml project.
    • ReScript - ReScript is a robustly typed language that compiles to efficient and human-readable JavaScript.
    • 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.
    • routes - Typed routes for OCaml/ReasonML web applications.
  • Open Source Projects:

    • Cumulus – Hacker news like website with the OCaml framework Ocsigen

原文:https://github.com/ocaml-community/awesome-ocaml