pyromark (stands for Python Rust Optimized Markdown) is a blazingly fast CommonMark-compliant Markdown parser for Python.
Uses pulldown-cmark Rust crate under the hood.
pip install -U pyromark
https://pyromark.readthedocs.io
See documentation for more comprehensive examples.
import pyromark
html = pyromark.html("# Hello world")
assert html == "<h1>Hello world</h1>\n"
import pyromark
for event in pyromark.events("# Hello world"):
# All event types are fully type annotated
# so you will get static type checking
# and Tab completions in your IDE!
match event:
case ("Start", ("Heading", {"level": heading_level})):
print(f"Heading with {heading_level} level started")
case ("Text", text):
print(f"Got {text!r} text")
case ("End", ("Heading", heading_level)):
print(f"Heading with {heading_level} level ended")
case other_event:
print(f"Got {other_event!r}")
130x faster than Markdown, 101x faster than markdown-it-py, 71x faster than mistune, 8x faster than markdown-it-pyrs.
If you use threading, the difference with other libraries will be even more enormous, since pyromark releases the GIL.
See benchmark.