# Lexbor\_erl - fast HTML parsing, CSS selector querying, DOM manipulation

**URL:** <https://erlangforums.com/t/lexbor-erl-fast-html-parsing-css-selector-querying-dom-manipulation/5300>\
**Category:** Libraries\
**Tags:** html, parsing, css, dom\
**Created:** [December 3, 2025, 2:11pm UTC](https://erlangforums.com/t/lexbor-erl-fast-html-parsing-css-selector-querying-dom-manipulation/5300 "2025-12-03T14:11:23Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![f34nk](https://erlangforums.com/user_avatar/erlangforums.com/f34nk/32/3071_2.png) [@f34nk](https://erlangforums.com/u/f34nk)\
**Post date:** [December 3, 2025, 2:11pm UTC](https://erlangforums.com/t/lexbor-erl-fast-html-parsing-css-selector-querying-dom-manipulation/5300/1 "2025-12-03T14:11:23Z")

</div>

Hello 👋

[lexbor\_erl](https://github.com/f34nk/lexbor_erl/tree/main) provides safe, fast HTML parsing, CSS selector querying, DOM manipulation, and streaming parser capabilities for Erlang applications. It wraps the high-performance [Lexbor C library](https://github.com/lexbor/lexbor) using a port-based worker pool architecture for isolation, safety, and parallel processing.

Some years ago, I already implemented an Elixir binding [ModestEx](https://github.com/f34nk/modest_ex) for the Lexbor predecessor [Modest](https://github.com/lexborisov/Modest). Now, that lexbor\_erl is available, [ModestEx is finally migrated using lexbor\_erl](https://elixirforum.com/t/modestex-pipeable-transformations-on-html-strings-with-css-selectors/12793/19) as dependency.

Published on hex.pm

> **[lexbor\_erl](https://hex.pm/packages/lexbor_erl)**
>
> Fast HTML5 parser with DOM manipulation, CSS selectors, and streaming support via Lexbor C library

> **[GitHub - f34nk/lexbor\_erl: An Erlang wrapper for the Lexbor HTML parser and...](https://github.com/f34nk/lexbor_erl)**
>
> An Erlang wrapper for the Lexbor HTML parser and DOM library via a port-based architecture.

I hope you find this useful!

Frank

---

<div class="post-metadata">

**Author:** ![LeonardB](https://erlangforums.com/user_avatar/erlangforums.com/leonardb/32/1856_2.png) [@LeonardB](https://erlangforums.com/u/LeonardB)\
**Post date:** [December 3, 2025, 4:34pm UTC](https://erlangforums.com/t/lexbor-erl-fast-html-parsing-css-selector-querying-dom-manipulation/5300/2 "2025-12-03T16:34:30Z")

</div>

Congrats on the release.

While I don’t have any use for it currently, I would like to commend your releasing it as an Erlang library. I wish more Elixir library devs took the time to build using this pattern as while it’s _possible_ to use Elixir libs from Erlang it’s still painful.

---

<div class="post-metadata">

**Author:** ![f34nk](https://erlangforums.com/user_avatar/erlangforums.com/f34nk/32/3071_2.png) [@f34nk](https://erlangforums.com/u/f34nk)\
**Post date:** [December 4, 2025, 8:21am UTC](https://erlangforums.com/t/lexbor-erl-fast-html-parsing-css-selector-querying-dom-manipulation/5300/3 "2025-12-04T08:21:57Z")

</div>

Thank you @LeonardB I think you make a great point there.
