The fast, most optimal, and correct HTML & XML parsing library.
Project Links
Meta
Author: awolverp
Requires Python: >=3.8
Classifiers
Programming Language
- Python :: Implementation :: CPython
- Python :: Implementation :: PyPy
- Python :: 3
- Python :: 3 :: Only
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
- Python
- Rust
Intended Audience
- Developers
License
- OSI Approved :: MIT License
Operating System
- POSIX :: Linux
- Microsoft :: Windows
- MacOS
Typing
- Typed
The fast, most optimal, and correct HTML & XML parsing library
Documentation | Releases | Benchmarks
MarkupEver is a modern, fast (high-performance), XML & HTML languages parsing library written in Rust.
KEY FEATURES:
- 🚀 Fast: Very high performance and fast (thanks to html5ever and selectors).
- 🔥 Easy: Designed to be easy to use and learn. Completion everywhere.
- ✨ Low-Memory: Written in Rust. Uses low memory. Don't worry about memory leaks. Uses Rust memory allocator.
- 🧶 Thread-safe: Completely thread-safe.
- 🎯 Quering: Use your CSS knowledge for selecting elements from a HTML or XML document.
- ⚡ Streaming: Incremental/streaming parsing support.
Installation
You can install MarkupEver by using pip:
It's recommended to use virtual environments.
$ pip3 install markupever
Example
Parse
Parsing a HTML content and selecting elements:
import markupever
dom = markupever.parse_file("file.html", "html")
# Or parse a HTML content directly:
# dom = markupever.parse("... content ...", "html")
for element in dom.select("div.section > p:child-nth(1)"):
print(element.text())
Create DOM
Creating a DOM from zero:
from markupever import dom
dom = dom.TreeDom()
root: dom.Document = dom.root()
root.create_doctype("html")
html = root.create_element("html", {"lang": "en"})
body = html.create_element("body")
body.create_text("Hello Everyone ...")
print(root.serialize())
# <!DOCTYPE html>
# <html lang="en">
# <body>Hello Everyone ...</body>
# </html>
0.3.5
Jul 21, 2026
0.3.4
Jun 17, 2026
0.3.3
Apr 11, 2026
0.3.2
Oct 31, 2025
0.3.1
May 22, 2025
0.3.0
May 11, 2025
0.2.1
Mar 25, 2025
0.2.0
Mar 16, 2025
0.1.1
Mar 09, 2025
0.1.0
Mar 06, 2025
0.1.0b1
Mar 04, 2025
Wheel compatibility matrix
Files in release
markupever-0.3.5-cp310-cp310-macosx_10_12_x86_64.whl (606.2KiB)
markupever-0.3.5-cp310-cp310-macosx_11_0_arm64.whl (582.2KiB)
markupever-0.3.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (658.2KiB)
markupever-0.3.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (662.6KiB)
markupever-0.3.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (740.4KiB)
markupever-0.3.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (778.7KiB)
markupever-0.3.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (652.8KiB)
markupever-0.3.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl (687.7KiB)
markupever-0.3.5-cp310-cp310-musllinux_1_2_aarch64.whl (831.9KiB)
markupever-0.3.5-cp310-cp310-musllinux_1_2_armv7l.whl (932.6KiB)
markupever-0.3.5-cp310-cp310-musllinux_1_2_i686.whl (892.2KiB)
markupever-0.3.5-cp310-cp310-musllinux_1_2_x86_64.whl (880.7KiB)
markupever-0.3.5-cp310-cp310-win32.whl (524.4KiB)
markupever-0.3.5-cp310-cp310-win_amd64.whl (528.3KiB)
markupever-0.3.5-cp311-cp311-macosx_10_12_x86_64.whl (605.8KiB)
markupever-0.3.5-cp311-cp311-macosx_11_0_arm64.whl (582.0KiB)
markupever-0.3.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (657.9KiB)
markupever-0.3.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (662.7KiB)
markupever-0.3.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (740.4KiB)
markupever-0.3.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (778.6KiB)
markupever-0.3.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (652.7KiB)
markupever-0.3.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl (687.6KiB)
markupever-0.3.5-cp311-cp311-musllinux_1_2_aarch64.whl (831.6KiB)
markupever-0.3.5-cp311-cp311-musllinux_1_2_armv7l.whl (932.6KiB)
markupever-0.3.5-cp311-cp311-musllinux_1_2_i686.whl (892.1KiB)
markupever-0.3.5-cp311-cp311-musllinux_1_2_x86_64.whl (880.6KiB)
markupever-0.3.5-cp311-cp311-win32.whl (524.2KiB)
markupever-0.3.5-cp311-cp311-win_amd64.whl (528.1KiB)
markupever-0.3.5-cp312-cp312-macosx_10_12_x86_64.whl (608.2KiB)
markupever-0.3.5-cp312-cp312-macosx_11_0_arm64.whl (579.9KiB)
markupever-0.3.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (659.5KiB)
markupever-0.3.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (659.5KiB)
markupever-0.3.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (740.0KiB)
markupever-0.3.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (782.3KiB)
markupever-0.3.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (657.9KiB)
markupever-0.3.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl (684.6KiB)
markupever-0.3.5-cp312-cp312-musllinux_1_2_aarch64.whl (833.1KiB)
markupever-0.3.5-cp312-cp312-musllinux_1_2_armv7l.whl (929.1KiB)
markupever-0.3.5-cp312-cp312-musllinux_1_2_i686.whl (888.8KiB)
markupever-0.3.5-cp312-cp312-musllinux_1_2_x86_64.whl (885.0KiB)
markupever-0.3.5-cp312-cp312-win32.whl (524.9KiB)
markupever-0.3.5-cp312-cp312-win_amd64.whl (532.0KiB)
markupever-0.3.5-cp313-cp313-macosx_10_12_x86_64.whl (608.4KiB)
markupever-0.3.5-cp313-cp313-macosx_11_0_arm64.whl (579.9KiB)
markupever-0.3.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (659.9KiB)
markupever-0.3.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (659.3KiB)
markupever-0.3.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (739.8KiB)
markupever-0.3.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (782.3KiB)
markupever-0.3.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (658.1KiB)
markupever-0.3.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl (684.2KiB)
markupever-0.3.5-cp313-cp313-musllinux_1_2_aarch64.whl (833.3KiB)
markupever-0.3.5-cp313-cp313-musllinux_1_2_armv7l.whl (928.5KiB)
markupever-0.3.5-cp313-cp313-musllinux_1_2_i686.whl (888.6KiB)
markupever-0.3.5-cp313-cp313-musllinux_1_2_x86_64.whl (885.2KiB)
markupever-0.3.5-cp313-cp313-win32.whl (524.4KiB)
markupever-0.3.5-cp313-cp313-win_amd64.whl (532.3KiB)
markupever-0.3.5-cp314-cp314-macosx_10_12_x86_64.whl (608.6KiB)
markupever-0.3.5-cp314-cp314-macosx_11_0_arm64.whl (580.2KiB)
markupever-0.3.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (658.6KiB)
markupever-0.3.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (659.7KiB)
markupever-0.3.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (739.6KiB)
markupever-0.3.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl (781.4KiB)
markupever-0.3.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (655.8KiB)
markupever-0.3.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (684.7KiB)
markupever-0.3.5-cp314-cp314-musllinux_1_2_aarch64.whl (832.3KiB)
markupever-0.3.5-cp314-cp314-musllinux_1_2_armv7l.whl (929.2KiB)
markupever-0.3.5-cp314-cp314-musllinux_1_2_i686.whl (888.9KiB)
markupever-0.3.5-cp314-cp314-musllinux_1_2_x86_64.whl (882.5KiB)
markupever-0.3.5-cp314-cp314-win32.whl (524.4KiB)
markupever-0.3.5-cp314-cp314-win_amd64.whl (529.6KiB)
markupever-0.3.5-cp314-cp314t-macosx_10_12_x86_64.whl (604.9KiB)
markupever-0.3.5-cp314-cp314t-macosx_11_0_arm64.whl (577.1KiB)
markupever-0.3.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (654.1KiB)
markupever-0.3.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (656.9KiB)
markupever-0.3.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (735.7KiB)
markupever-0.3.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (777.9KiB)
markupever-0.3.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (651.2KiB)
markupever-0.3.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl (681.7KiB)
markupever-0.3.5-cp314-cp314t-musllinux_1_2_aarch64.whl (826.5KiB)
markupever-0.3.5-cp314-cp314t-musllinux_1_2_armv7l.whl (926.4KiB)
markupever-0.3.5-cp314-cp314t-musllinux_1_2_i686.whl (886.3KiB)
markupever-0.3.5-cp314-cp314t-musllinux_1_2_x86_64.whl (879.8KiB)
markupever-0.3.5-cp314-cp314t-win32.whl (521.7KiB)
markupever-0.3.5-cp314-cp314t-win_amd64.whl (527.2KiB)
markupever-0.3.5-cp315-cp315-macosx_10_12_x86_64.whl (608.4KiB)
markupever-0.3.5-cp315-cp315-macosx_11_0_arm64.whl (580.1KiB)
markupever-0.3.5-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (658.6KiB)
markupever-0.3.5-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (659.9KiB)
markupever-0.3.5-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (739.7KiB)
markupever-0.3.5-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl (781.3KiB)
markupever-0.3.5-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (655.5KiB)
markupever-0.3.5-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl (685.0KiB)
markupever-0.3.5-cp315-cp315-musllinux_1_2_aarch64.whl (832.2KiB)
markupever-0.3.5-cp315-cp315-musllinux_1_2_armv7l.whl (929.5KiB)
markupever-0.3.5-cp315-cp315-musllinux_1_2_i686.whl (889.2KiB)
markupever-0.3.5-cp315-cp315-musllinux_1_2_x86_64.whl (882.3KiB)
markupever-0.3.5-cp315-cp315-win32.whl (524.5KiB)
markupever-0.3.5-cp315-cp315-win_amd64.whl (529.7KiB)
markupever-0.3.5-cp315-cp315t-macosx_10_12_x86_64.whl (604.8KiB)
markupever-0.3.5-cp315-cp315t-macosx_11_0_arm64.whl (577.1KiB)
markupever-0.3.5-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (653.9KiB)
markupever-0.3.5-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (657.2KiB)
markupever-0.3.5-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (735.7KiB)
markupever-0.3.5-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl (777.8KiB)
markupever-0.3.5-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (651.0KiB)
markupever-0.3.5-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl (681.8KiB)
markupever-0.3.5-cp315-cp315t-musllinux_1_2_aarch64.whl (826.5KiB)
markupever-0.3.5-cp315-cp315t-musllinux_1_2_armv7l.whl (926.6KiB)
markupever-0.3.5-cp315-cp315t-musllinux_1_2_i686.whl (886.5KiB)
markupever-0.3.5-cp315-cp315t-musllinux_1_2_x86_64.whl (879.7KiB)
markupever-0.3.5-cp315-cp315t-win32.whl (521.7KiB)
markupever-0.3.5-cp315-cp315t-win_amd64.whl (527.2KiB)
markupever-0.3.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (617.0KiB)
markupever-0.3.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl (593.8KiB)
markupever-0.3.5-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (668.0KiB)
markupever-0.3.5-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (673.7KiB)
markupever-0.3.5-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (750.5KiB)
markupever-0.3.5-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (787.9KiB)
markupever-0.3.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (663.4KiB)
markupever-0.3.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl (699.1KiB)
markupever-0.3.5-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (841.6KiB)
markupever-0.3.5-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl (943.1KiB)
markupever-0.3.5-pp311-pypy311_pp73-musllinux_1_2_i686.whl (904.0KiB)
markupever-0.3.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (892.0KiB)
markupever-0.3.5-pp311-pypy311_pp73-win_amd64.whl (537.1KiB)
markupever-0.3.5.tar.gz (97.0KiB)