# \#library

**URL:** https://discuss.ocaml.org/tag/library/215.md

[Latest](https://discuss.ocaml.org/latest.md) · [Categories](https://discuss.ocaml.org/categories.md) · [Tags](https://discuss.ocaml.org/tags.md)

---

## [\[ANN\] a2a SDK in OCaml](https://discuss.ocaml.org/t/ann-a2a-sdk-in-ocaml/18584)

<div class="topic-metadata">

**Author:** [@prudencio](https://discuss.ocaml.org/u/prudencio)\
**Replies:** 0\
**Last updated:** [October 5, 2026, 9:13pm UTC](https://discuss.ocaml.org/t/ann-a2a-sdk-in-ocaml/18584 "2026-10-05T21:13:47Z")

</div>

SDK for the A2A protocol WIP

---

## [OCaml YAML library](https://discuss.ocaml.org/t/ocaml-yaml-library/4297)

<div class="topic-metadata">

**Author:** [@cemerick](https://discuss.ocaml.org/u/cemerick)\
**Replies:** 6\
**Last updated:** [April 11, 2026, 2:54pm UTC](https://discuss.ocaml.org/t/ocaml-yaml-library/4297 "2026-04-11T14:54:17Z")

</div>

I know of ocaml-yaml, but it relies on a C FFI binding. I would like to avoid this in order to ensure I can compile to JS and maintain consistent behaviour. (Depending on some JS-native yaml library for JS-targeted build…

---

## [Sending an email via SMTP](https://discuss.ocaml.org/t/sending-an-email-via-smtp/6170)

<div class="topic-metadata">

**Author:** [@subarashiku](https://discuss.ocaml.org/u/subarashiku)\
**Replies:** 5\
**Last updated:** [August 27, 2025, 10:10pm UTC](https://discuss.ocaml.org/t/sending-an-email-via-smtp/6170 "2025-08-27T22:10:44Z")

</div>

I know of 2 that look more or less decent: https://github.com/oxidizing/letters https://github.com/janestreet/async\_smtp What library would you recommend? It should be more or less mature, and not abandoned.

---

## [Linking problem in compiling my binding of Allegro 5](https://discuss.ocaml.org/t/linking-problem-in-compiling-my-binding-of-allegro-5/15972)

<div class="topic-metadata">

**Author:** [@Frigory](https://discuss.ocaml.org/u/Frigory)\
**Replies:** 14\
**Last updated:** [February 5, 2025, 10:02pm UTC](https://discuss.ocaml.org/t/linking-problem-in-compiling-my-binding-of-allegro-5/15972 "2025-02-05T22:02:50Z")

</div>

Hello. I am working on a binding of Allegro 5, a C library similar to SDL, aimed at video games. It compiles well with my default switch which uses OCaml 5.2, but I can’t have it to compile with OCaml 4 compilers. I dis…

---

## [Which library to query a database (postgreSQL) is popular in OCaml?](https://discuss.ocaml.org/t/which-library-to-query-a-database-postgresql-is-popular-in-ocaml/15129)

<div class="topic-metadata">

**Author:** [@espioka](https://discuss.ocaml.org/u/espioka)\
**Replies:** 3\
**Last updated:** [August 14, 2024, 12:52pm UTC](https://discuss.ocaml.org/t/which-library-to-query-a-database-postgresql-is-popular-in-ocaml/15129 "2024-08-14T12:52:28Z")

</div>

I am building an application that will need to persist data in a database. I need to query this database. I don’t mind either the ORM approach or the sql-query writing approach. I saw a couple of options around, but I w…

---

## [\[BLOG\] A Tour of the Living Library -- A Safer FFI](https://discuss.ocaml.org/t/blog-a-tour-of-the-living-library-a-safer-ffi/14981)

<div class="topic-metadata">

**Author:** [@Fizzixnerd](https://discuss.ocaml.org/u/Fizzixnerd)\
**Replies:** 1\
**Last updated:** [July 17, 2024, 3:50pm UTC](https://discuss.ocaml.org/t/blog-a-tour-of-the-living-library-a-safer-ffi/14981 "2024-07-17T15:50:43Z")

</div>

Hi there, I’ve written a new blog post on the living library I announced a few days ago. Please give it a read if you’re interested in safe use of Ctypes, or otherwise need lifetime management in OCaml. Would love to …

---

## [Serialization to XML](https://discuss.ocaml.org/t/serialization-to-xml/14896)

<div class="topic-metadata">

**Author:** [@yashrk](https://discuss.ocaml.org/u/yashrk)\
**Replies:** 5\
**Last updated:** [July 4, 2024, 12:49pm UTC](https://discuss.ocaml.org/t/serialization-to-xml/14896 "2024-07-04T12:49:15Z")

</div>

My task is to create a small XML file using OCaml. I have tried several libraries: csvfields+ppx\_xml\_conv: version 0.16.0 still cannot serialize types with any name but t (probably due to a bug similar to that fixed i…

---

## [\[ANN\] euler 0.3](https://discuss.ocaml.org/t/ann-euler-0-3/14877)

<div class="topic-metadata">

**Author:** [@glen](https://discuss.ocaml.org/u/glen)\
**Replies:** 2\
**Last updated:** [June 29, 2024, 12:15pm UTC](https://discuss.ocaml.org/t/ann-euler-0-3/14877 "2024-06-29T12:15:37Z")

</div>

It is my pleasure to announce the release of Euler version 0.3. :slight\_smile: Euler is an arithmetic library for OCaml integers. For more details, please read the repo’s README or browse the docs. In version 0.3: so…

---

## [How to properly define a library with C bindings?](https://discuss.ocaml.org/t/how-to-properly-define-a-library-with-c-bindings/14419)

<div class="topic-metadata">

**Author:** [@andunie](https://discuss.ocaml.org/u/andunie)\
**Replies:** 5\
**Last updated:** [April 3, 2024, 6:25pm UTC](https://discuss.ocaml.org/t/how-to-properly-define-a-library-with-c-bindings/14419 "2024-04-03T18:25:10Z")

</div>

I’m using ctypes and writing custom very small bindings to libsecp256k1, and I can get it to work, but only if I add (flags :standard -cclib -lsecp256k1) on my executable. But that feels wrong, I think it should be able…

---

## [\[ANN\] producer 0.2.0](https://discuss.ocaml.org/t/ann-producer-0-2-0/13191)

<div class="topic-metadata">

**Author:** [@Sixstring982](https://discuss.ocaml.org/u/Sixstring982)\
**Replies:** 0\
**Last updated:** [October 8, 2023, 6:33pm UTC](https://discuss.ocaml.org/t/ann-producer-0-2-0/13191 "2023-10-08T18:33:25Z")

</div>

Hi everyone! I’m pleased to announce a new release of producer, v0.2.0. This release allows a Producer graph to be specified for Monads with more than one type parameter (e.g. Result.t). The previous release of this li…

---

## [Libraries to link "just in case", such as threads](https://discuss.ocaml.org/t/libraries-to-link-just-in-case-such-as-threads/11366)

<div class="topic-metadata">

**Author:** [@amaro](https://discuss.ocaml.org/u/amaro)\
**Replies:** 0\
**Last updated:** [February 8, 2023, 8:54am UTC](https://discuss.ocaml.org/t/libraries-to-link-just-in-case-such-as-threads/11366 "2023-02-08T08:54:25Z")

</div>

We just noticed that one of Frama-C’s tutorials, which tells users to try bogue on a simple plug-in, is broken due to the lack of threads in the libraries section of our dune file. Frama-C uses dynamic linking for its p…

---

## [The current scope doesn't define package](https://discuss.ocaml.org/t/the-current-scope-doesnt-define-package/10689)

<div class="topic-metadata">

**Author:** [@os12345678](https://discuss.ocaml.org/u/os12345678)\
**Replies:** 4\
**Last updated:** [October 24, 2022, 3:29am UTC](https://discuss.ocaml.org/t/the-current-scope-doesnt-define-package/10689 "2022-10-24T03:29:30Z")

</div>

Hi there! I’m a CS student learning ocaml for the first time and have run into some troubles (that I cant figure out a solution for). I am using dune to structure my ocaml project and am trying to define multiple librar…

---

## [Top 5 Favorite OCaml Libraries?](https://discuss.ocaml.org/t/top-5-favorite-ocaml-libraries/10626)

<div class="topic-metadata">

**Author:** [@professor.rose](https://discuss.ocaml.org/u/professor.rose)\
**Replies:** 19\
**Last updated:** [October 20, 2022, 4:43pm UTC](https://discuss.ocaml.org/t/top-5-favorite-ocaml-libraries/10626 "2022-10-20T16:43:49Z")

</div>

Hi! I’m Christine, a technical writer at Tarides. I’d love to hear from the community on this topic. One of the misconceptions about OCaml is that there aren’t enough libraries. I’d like to write a blog article dispelli…

---

## [Categorical programming in OCaml](https://discuss.ocaml.org/t/categorical-programming-in-ocaml/10584)

<div class="topic-metadata">

**Author:** [@nrolland](https://discuss.ocaml.org/u/nrolland)\
**Replies:** 2\
**Last updated:** [October 12, 2022, 4:31pm UTC](https://discuss.ocaml.org/t/categorical-programming-in-ocaml/10584 "2022-10-12T16:31:22Z")

</div>

I wonder what is the state of “categorical programming” in the OCaml-verse. Vague question probably, but that’s why I ask it here. Let me precise what I mean by that : Functors : is there any standard-ish libraries …

---

## [Recommendations for parsing structured text files with specific annotations/commands](https://discuss.ocaml.org/t/recommendations-for-parsing-structured-text-files-with-specific-annotations-commands/10272)

<div class="topic-metadata">

**Author:** [@dmentre](https://discuss.ocaml.org/u/dmentre)\
**Replies:** 6\
**Last updated:** [August 28, 2022, 4:59pm UTC](https://discuss.ocaml.org/t/recommendations-for-parsing-structured-text-files-with-specific-annotations-commands/10272 "2022-08-28T16:59:56Z")

</div>

Hello, I would like to parse structured text files with some specific commands inside them to obtain an OCaml Sum type that I will use in my program. For now, I’m using text files in markdown format with additionally La…

---

## [Advice on representing arbitrary numbers in library](https://discuss.ocaml.org/t/advice-on-representing-arbitrary-numbers-in-library/9880)

<div class="topic-metadata">

**Author:** [@impossiblynew](https://discuss.ocaml.org/u/impossiblynew)\
**Replies:** 12\
**Last updated:** [May 23, 2022, 1:11am UTC](https://discuss.ocaml.org/t/advice-on-representing-arbitrary-numbers-in-library/9880 "2022-05-23T01:11:59Z")

</div>

TL;DR: My library needs to parse arbitrarily large and precise numbers from an external source into something useful for its users, and I can’t decide between the bolded options below. I’m working on a library for both…

---

## [Having an outside library and using it for a project](https://discuss.ocaml.org/t/having-an-outside-library-and-using-it-for-a-project/9312)

<div class="topic-metadata">

**Author:** [@Nolord](https://discuss.ocaml.org/u/Nolord)\
**Replies:** 1\
**Last updated:** [February 12, 2022, 1:04pm UTC](https://discuss.ocaml.org/t/having-an-outside-library-and-using-it-for-a-project/9312 "2022-02-12T13:04:19Z")

</div>

Hello, I’m having trouble setting up my project. Here is a the structure of my directory : ├─ lib │ ├── lib1 │ │ ├── dune │ │ ├── lib1.ml │ │ └── lib1.mli │ ├── lib2 │ │ ├── dune │ │ └── lib2.ml │ └─…

---

## [How does one create a proper OCaml project?](https://discuss.ocaml.org/t/how-does-one-create-a-proper-ocaml-project/9239)

<div class="topic-metadata">

**Author:** [@Nolord](https://discuss.ocaml.org/u/Nolord)\
**Replies:** 8\
**Last updated:** [January 31, 2022, 7:51pm UTC](https://discuss.ocaml.org/t/how-does-one-create-a-proper-ocaml-project/9239 "2022-01-31T19:51:09Z")

</div>

How do I use files like Makefiles, dune, \_tags, .ocamlinit, and other to make a proper OCaml project? What do I have to do to be able to use online libraries into my projects? And finally, what manners should I adopt w…

---

## [Library to parse .gitignore like files, and filter files using globbing?](https://discuss.ocaml.org/t/library-to-parse-gitignore-like-files-and-filter-files-using-globbing/9021)

<div class="topic-metadata">

**Author:** [@aryx](https://discuss.ocaml.org/u/aryx)\
**Replies:** 5\
**Last updated:** [December 15, 2021, 4:55pm UTC](https://discuss.ocaml.org/t/library-to-parse-gitignore-like-files-and-filter-files-using-globbing/9021 "2021-12-15T16:55:10Z")

</div>

Hi, Is there any OCaml library out there to parse files defining globs (e.g., \*.c) like the one found in .gitignore for example, and providing functions to filter files based on those globs. I know I can make my own …

---

## [Directories, an ocaml library](https://discuss.ocaml.org/t/directories-an-ocaml-library/6753)

<div class="topic-metadata">

**Author:** [@OCamlPro](https://discuss.ocaml.org/u/OCamlPro)\
**Replies:** 1\
**Last updated:** [April 9, 2021, 10:48am UTC](https://discuss.ocaml.org/t/directories-an-ocaml-library/6753 "2021-04-09T10:48:47Z")

</div>

Hi, We are pleased to present directories, which is an OCaml library that provides configuration, cache and data paths (and more!) following the suitable conventions on Linux, macOS and Windows. It is inspired by simil…

---

## [What are some libraries you almost always use?](https://discuss.ocaml.org/t/what-are-some-libraries-you-almost-always-use/7165)

<div class="topic-metadata">

**Author:** [@leostera](https://discuss.ocaml.org/u/leostera)\
**Replies:** 26\
**Last updated:** [March 12, 2021, 3:37pm UTC](https://discuss.ocaml.org/t/what-are-some-libraries-you-almost-always-use/7165 "2021-03-12T15:37:48Z")

</div>

Hello fellow ocamlers :camel:, I’m putting together some ideas for the standard library that will ship with Caramel, an OCaml-derived language for the Erlang VM that I’m building, and would love to hear what are some li…

---

## [Amqp-client for RabbitMQ -- all well?](https://discuss.ocaml.org/t/amqp-client-for-rabbitmq-all-well/6625)

<div class="topic-metadata">

**Author:** [@subarashiku](https://discuss.ocaml.org/u/subarashiku)\
**Replies:** 3\
**Last updated:** [October 19, 2020, 4:33am UTC](https://discuss.ocaml.org/t/amqp-client-for-rabbitmq-all-well/6625 "2020-10-19T04:33:57Z")

</div>

Can https://github.com/andersfugmann/amqp-client be used with RabbitMQ nicely? No functionality is missing when it’s used with RabbitMQ? No downsides at all?

---

## [DNS client library](https://discuss.ocaml.org/t/dns-client-library/6614)

<div class="topic-metadata">

**Author:** [@subarashiku](https://discuss.ocaml.org/u/subarashiku)\
**Replies:** 8\
**Last updated:** [October 17, 2020, 6:38pm UTC](https://discuss.ocaml.org/t/dns-client-library/6614 "2020-10-17T18:38:18Z")

</div>

This https://github.com/mirage/ocaml-dns is implementation of DNS protocol. Whereas I need a client DNS library. One of the needs, but not the only one, I have is to query MX records and data associated with it, of a d…

---

## [How is sqlite3-ocaml lib?](https://discuss.ocaml.org/t/how-is-sqlite3-ocaml-lib/6152)

<div class="topic-metadata">

**Author:** [@subarashiku](https://discuss.ocaml.org/u/subarashiku)\
**Replies:** 9\
**Last updated:** [July 29, 2020, 8:30am UTC](https://discuss.ocaml.org/t/how-is-sqlite3-ocaml-lib/6152 "2020-07-29T08:30:17Z")

</div>

What can you say about this library https://github.com/mmottl/sqlite3-ocaml How has been your experience? Are there other better libraries for Sqlite3 that you’d recommend? In general, what’s the difference bindings t…

---

## [Tsdl API confusion: How do I get "pixel\_format" from "Pixel.format\_enum" or from a "surface"?](https://discuss.ocaml.org/t/tsdl-api-confusion-how-do-i-get-pixel-format-from-pixel-format-enum-or-from-a-surface/4260)

<div class="topic-metadata">

**Author:** [@kenranunderscore](https://discuss.ocaml.org/u/kenranunderscore)\
**Replies:** 8\
**Last updated:** [August 23, 2019, 3:53pm UTC](https://discuss.ocaml.org/t/tsdl-api-confusion-how-do-i-get-pixel-format-from-pixel-format-enum-or-from-a-surface/4260 "2019-08-23T15:53:57Z")

</div>

Hi, I’m trying to learn OCaml and the SDL graphics library simultaneously at the moment, and I’m still struggling with how to eat my way through an OCaml API. I’m using the Tsdl library, and it seems to have two types t…

---

## [Bimap (bi-directional map) implementation](https://discuss.ocaml.org/t/bimap-bi-directional-map-implementation/3776)

<div class="topic-metadata">

**Author:** [@papatango](https://discuss.ocaml.org/u/papatango)\
**Replies:** 2\
**Last updated:** [May 15, 2019, 2:36am UTC](https://discuss.ocaml.org/t/bimap-bi-directional-map-implementation/3776 "2019-05-15T02:36:46Z")

</div>

An implementation of a bimap, a map that is bi-directional and which any client code can use to look up keys if given values as well as traditional lookup of values given keys. Implemented using functors as a class and a…

---

## [Dune/OPAM package layout with 'extension' sub-libraries?](https://discuss.ocaml.org/t/dune-opam-package-layout-with-extension-sub-libraries/3737)

<div class="topic-metadata">

**Author:** [@MattWindsor91](https://discuss.ocaml.org/u/MattWindsor91)\
**Replies:** 2\
**Last updated:** [May 9, 2019, 2:16pm UTC](https://discuss.ocaml.org/t/dune-opam-package-layout-with-extension-sub-libraries/3737 "2019-05-09T14:16:55Z")

</div>

Hi all, Suppose I’m making a package that has one main library L, consisting of several different modules L.Foo, L.Bar, L.Baz, etc and with a certain set of dependencies; I then have a few smaller extension libraries A,…

---

## [Dune: depend on non-Dune libraries in the workspace](https://discuss.ocaml.org/t/dune-depend-on-non-dune-libraries-in-the-workspace/3150)

<div class="topic-metadata">

**Author:** [@iago](https://discuss.ocaml.org/u/iago)\
**Replies:** 9\
**Last updated:** [April 2, 2019, 11:52am UTC](https://discuss.ocaml.org/t/dune-depend-on-non-dune-libraries-in-the-workspace/3150 "2019-04-02T11:52:15Z")

</div>

Hi, I have a Dune-project (an application) A that depends on a third library L, this library is located in the workspace of the project, but it is built with a Make script (not using Dune). The project tree is similar …

---

## ["Master" types in Jane St versioned RPC, can they change?](https://discuss.ocaml.org/t/master-types-in-jane-st-versioned-rpc-can-they-change/3483)

<div class="topic-metadata">

**Author:** [@Paul\_A\_Steckler](https://discuss.ocaml.org/u/Paul_A_Steckler)\
**Replies:** 0\
**Last updated:** [March 11, 2019, 11:55pm UTC](https://discuss.ocaml.org/t/master-types-in-jane-st-versioned-rpc-can-they-change/3483 "2019-03-11T23:55:42Z")

</div>

The docs for the Jane St versioned RPC mention the use of “master” types. Is the idea that those types never change after the introduction of versions? Or would it be OK to update those types, as long as the caller/call…

---

## [Transducers in OCaml?](https://discuss.ocaml.org/t/transducers-in-ocaml/2317)

<div class="topic-metadata">

**Author:** [@yoriyuki](https://discuss.ocaml.org/u/yoriyuki)\
**Replies:** 4\
**Last updated:** [September 27, 2018, 11:35am UTC](https://discuss.ocaml.org/t/transducers-in-ocaml/2317 "2018-09-27T11:35:20Z")

</div>

I have three questions related to transducers (http://blog.cognitect.com/blog/2014/8/6/transducers-are-coming). I found two transducer libraries for OCaml in Github, but none in opam. Do I miss another implementation, …

[Next page](https://discuss.ocaml.org/tag/library/215.md?match_all_tags=true&page=1&tags%5B%5D=library)
