markupever 0.3.5


pip install markupever

  Latest version

Released: Jul 21, 2026

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

MarkupEver

The fast, most optimal, and correct HTML & XML parsing library

Documentation | Releases | Benchmarks

text image image image python-test download


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>

Wheel compatibility matrix

Platform CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14 CPython 3.15 CPython (additional flags: t) 3.14 CPython (additional flags: t) 3.15 PyPy 3.11 (pp73)
macosx_10_12_x86_64
macosx_11_0_arm64
manylinux1_i686
manylinux2014_aarch64
manylinux2014_armv7l
manylinux2014_ppc64le
manylinux2014_s390x
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_armv7l
manylinux_2_17_ppc64le
manylinux_2_17_s390x
manylinux_2_17_x86_64
manylinux_2_5_i686
musllinux_1_2_aarch64
musllinux_1_2_armv7l
musllinux_1_2_i686
musllinux_1_2_x86_64
win32
win_amd64

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)
Extras:
Dependencies: