# \#library

**URL:** https://erlangforums.com/tag/library/645.md

[Latest](https://erlangforums.com/latest.md) · [Categories](https://erlangforums.com/categories.md) · [Tags](https://erlangforums.com/tags.md)

---

## [Roadrunner - Pure-Erlang HTTP and WebSocket server](https://erlangforums.com/t/roadrunner-pure-erlang-http-and-websocket-server/5623)

<div class="topic-metadata">

**Author:** [@williamthome](https://erlangforums.com/u/williamthome)\
**Replies:** 24\
**Last updated:** [October 27, 2026, 10:32pm UTC](https://erlangforums.com/t/roadrunner-pure-erlang-http-and-websocket-server/5623 "2026-10-27T22:32:17Z")

</div>

Hey folks, Wanted to share a project I’ve been working on for a while: Roadrunner, a pure-Erlang HTTP/1.1 + HTTP/2 + WebSocket server, built from scratch with TDD as the HTTP layer for Arizona. Why another HTTP server?…

---

## [Elock - scalable distributed locks with deadlock detection](https://erlangforums.com/t/elock-scalable-distributed-locks-with-deadlock-detection/6065)

<div class="topic-metadata">

**Author:** [@vzroman](https://erlangforums.com/u/vzroman)\
**Replies:** 0\
**Last updated:** [October 21, 2026, 9:53am UTC](https://erlangforums.com/t/elock-scalable-distributed-locks-with-deadlock-detection/6065 "2026-10-21T09:53:30Z")

</div>

elock is a lock library for Erlang: locks on any term, exclusive or shared, on one node or on several at once, with deadlocks detected across nodes. We have completed a large-scale SCADA/EMS project for KEGOC, Kazakhsta…

---

## [Ecall - batched, pooled send/cast/call over Erlang distribution - scales past the single output queue per node pair](https://erlangforums.com/t/ecall-batched-pooled-send-cast-call-over-erlang-distribution-scales-past-the-single-output-queue-per-node-pair/5940)

<div class="topic-metadata">

**Author:** [@vzroman](https://erlangforums.com/u/vzroman)\
**Replies:** 9\
**Last updated:** [October 12, 2026, 9:15am UTC](https://erlangforums.com/t/ecall-batched-pooled-send-cast-call-over-erlang-distribution-scales-past-the-single-output-queue-per-node-pair/5940 "2026-10-12T09:15:40Z")

</div>

OTP 25 fixed the lock that many local senders used to fight over. Send the same traffic to another node and a different single point takes its place: one distribution queue per node pair. This is the story of how a SCADA…

---

## [Erlquad - quadtrees for Erlang](https://erlangforums.com/t/erlquad-quadtrees-for-erlang/5785)

<div class="topic-metadata">

**Author:** [@g-andrade](https://erlangforums.com/u/g-andrade)\
**Replies:** 0\
**Last updated:** [July 15, 2026, 10:30pm UTC](https://erlangforums.com/t/erlquad-quadtrees-for-erlang/5785 "2026-07-15T22:30:15Z")

</div>

erlquad provides Erlang quadtrees, a 2D spatial index that recursively subdivides a rectangular region into four quadrants, so that objects can be looked up by location without scanning them all. This library was archiv…

---

## [Tls\_bloom\_filter - OTP's built-in Bloom filter you probably didn't know about](https://erlangforums.com/t/tls-bloom-filter-otps-built-in-bloom-filter-you-probably-didnt-know-about/5646)

<div class="topic-metadata">

**Author:** [@zabrane](https://erlangforums.com/u/zabrane)\
**Replies:** 1\
**Last updated:** [May 22, 2026, 3:57pm UTC](https://erlangforums.com/t/tls-bloom-filter-otps-built-in-bloom-filter-you-probably-didnt-know-about/5646 "2026-05-22T15:57:10Z")

</div>

Following @etnt great httpd\_router post (pure OTP gems are having a moment!), here’s one more: tls\_bloom\_filter.erl, tucked away in lib/ssl/src/. It powers TLS 1.3 anti-replay protection, using a rotating pair of Bloom …

---

## [Keysmith - a library for generating unique IDs](https://erlangforums.com/t/keysmith-a-library-for-generating-unique-ids/5521)

<div class="topic-metadata">

**Author:** [@eproxus](https://erlangforums.com/u/eproxus)\
**Replies:** 3\
**Last updated:** [April 9, 2026, 1:39pm UTC](https://erlangforums.com/t/keysmith-a-library-for-generating-unique-ids/5521 "2026-04-09T13:39:48Z")

</div>

This library has been in production use for a while, but I wanted to post it here in case anyone else finds it useful :slightly\_smiling\_face: Keysmith KeySmith is a library for generating unique IDs. It supports two typ…

---

## [Kafine - Kafka client for Erlang](https://erlangforums.com/t/kafine-kafka-client-for-erlang/4431)

<div class="topic-metadata">

**Author:** [@rlipscombe](https://erlangforums.com/u/rlipscombe)\
**Replies:** 10\
**Last updated:** [February 14, 2026, 3:11pm UTC](https://erlangforums.com/t/kafine-kafka-client-for-erlang/4431 "2026-02-14T15:11:05Z")

</div>

Kafine is a Kafka client for Erlang. We’re (Happening, the technology stack behind Superbet) pleased to announce the initial public release of Kafine, our new Kafka client for Erlang. While Kafine is all-new, and still…

---

## [Current state of GraphQL in Erlang](https://erlangforums.com/t/current-state-of-graphql-in-erlang/5383)

<div class="topic-metadata">

**Author:** [@mmin](https://erlangforums.com/u/mmin)\
**Replies:** 1\
**Last updated:** [January 20, 2026, 12:47pm UTC](https://erlangforums.com/t/current-state-of-graphql-in-erlang/5383 "2026-01-20T12:47:30Z")

</div>

Which libraries do you use for GraphQL in Erlang. I suppose that people use either graphql-erlang, graphql\_erl (fork of graphql-erlang), their own fork of it (there are over 50 forks…) or either use Elixir’s Absinthe. g…

---

## [Erlang-rocksdb - a wrapper for RocksDB](https://erlangforums.com/t/erlang-rocksdb-a-wrapper-for-rocksdb/5363)

<div class="topic-metadata">

**Author:** [@benoitc](https://erlangforums.com/u/benoitc)\
**Replies:** 0\
**Last updated:** [January 8, 2026, 1:42pm UTC](https://erlangforums.com/t/erlang-rocksdb-a-wrapper-for-rocksdb/5363 "2026-01-08T13:42:39Z")

</div>

I would like to share erlang-rocksdb, an Erlang NIF wrapper for RocksDB. Current version is 2.5.0, built on RocksDB 10.7.5. Main features include: Basic db operations (get, put, delete, merge, multi\_get) Wide column …

---

## [Kaos - A combinator library for generating advanced random data structures](https://erlangforums.com/t/kaos-a-combinator-library-for-generating-advanced-random-data-structures/5084)

<div class="topic-metadata">

**Author:** [@EarthCitizen](https://erlangforums.com/u/EarthCitizen)\
**Replies:** 14\
**Last updated:** [September 25, 2025, 6:38pm UTC](https://erlangforums.com/t/kaos-a-combinator-library-for-generating-advanced-random-data-structures/5084 "2025-09-25T18:38:55Z")

</div>

kaos I recently decided to learn Erlang. As my first endeavor I created a combinator library for generating dynamic random values and data structures. The documentation is quite extensive and gives many usage examples. T…

---

## [Json\_polyfill - A polyfill for the OTP json module (EEP68)](https://erlangforums.com/t/json-polyfill-a-polyfill-for-the-otp-json-module-eep68/4472)

<div class="topic-metadata">

**Author:** [@williamthome](https://erlangforums.com/u/williamthome)\
**Replies:** 0\
**Last updated:** [February 9, 2025, 5:23pm UTC](https://erlangforums.com/t/json-polyfill-a-polyfill-for-the-otp-json-module-eep68/4472 "2025-02-09T17:23:38Z")

</div>

json\_polyfill This lib is just a copy of the json module proposed in EEP 68 and introduced in OTP 27 by Michał Muskała. Its intent is to act as a polyfill for apps that cannot currently be updated to OTP 27 or higher. T…

---

## [Is there any UART library in Erlang?](https://erlangforums.com/t/is-there-any-uart-library-in-erlang/4162)

<div class="topic-metadata">

**Author:** [@siiky](https://erlangforums.com/u/siiky)\
**Replies:** 4\
**Last updated:** [November 21, 2024, 4:41pm UTC](https://erlangforums.com/t/is-there-any-uart-library-in-erlang/4162 "2024-11-21T16:41:48Z")

</div>

I’m looking for an Erlang UART library for an experiment project. I’d be content using Elixir, but would prefer to use Erlang. So, is there any UART library in Erlang hiding somewhere in cyberspace? I’ve searched https:…

---

## [Rand:bytes/1 vs crypto:strong\_rand\_bytes/1 for UUIDs](https://erlangforums.com/t/rand-bytes-1-vs-crypto-strong-rand-bytes-1-for-uuids/4015)

<div class="topic-metadata">

**Author:** [@eproxus](https://erlangforums.com/u/eproxus)\
**Replies:** 1\
**Last updated:** [September 20, 2024, 12:19pm UTC](https://erlangforums.com/t/rand-bytes-1-vs-crypto-strong-rand-bytes-1-for-uuids/4015 "2024-09-20T12:19:12Z")

</div>

I’m working on a UUID/TypeID library for Erlang and am wondering what peoples opinions are on rand:bytes/1 vs crypto:strong\_rand\_bytes/? Do you prefer one over the other? Which should be the default? Would like to have …

---

## [Xml\_builderl - Erlang library for building xml](https://erlangforums.com/t/xml-builderl-erlang-library-for-building-xml/3415)

<div class="topic-metadata">

**Author:** [@fancycade](https://erlangforums.com/u/fancycade)\
**Replies:** 3\
**Last updated:** [March 25, 2024, 10:22pm UTC](https://erlangforums.com/t/xml-builderl-erlang-library-for-building-xml/3415 "2024-03-25T22:22:53Z")

</div>

I ported xml\_builder to Erlang. I also included from\_map from elixir-map-to-xml which gives a nice map interface for building xml. Hopefully others find it useful. It was a nice weekend project. Porting Elixir to Erlang…

---

## [Public\_key vs crypto - when to use each?](https://erlangforums.com/t/public-key-vs-crypto-when-to-use-each/3099)

<div class="topic-metadata">

**Author:** [@riccardomanfrin](https://erlangforums.com/u/riccardomanfrin)\
**Replies:** 1\
**Last updated:** [December 9, 2023, 8:15pm UTC](https://erlangforums.com/t/public-key-vs-crypto-when-to-use-each/3099 "2023-12-09T20:15:13Z")

</div>

Hi, I have the impression that crypto and public\_key libaries overlap on several functionalities. public\_key offers additional functions to manipulate certificates and a (simplier?) api to derive “pem” “der” encoded …

---

## [Blockade - event dispatching with priority levels](https://erlangforums.com/t/blockade-event-dispatching-with-priority-levels/2771)

<div class="topic-metadata">

**Author:** [@alfetahe](https://erlangforums.com/u/alfetahe)\
**Replies:** 0\
**Last updated:** [July 29, 2023, 2:46am UTC](https://erlangforums.com/t/blockade-event-dispatching-with-priority-levels/2771 "2023-07-29T02:46:57Z")

</div>

Hey there BEAM community! I’m happy to share with you my latest creation. Erlang library called Blockade. This library was born out of a personal need and a desire to improve event handling in Erlang/Elixir projects. Af…
