pyromark
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.
Installation
pip install -U pyromark
Documentation
https://pyromark.readthedocs.io
Basic examples
See documentation for more comprehensive examples.
Convert Markdown to HTML
import pyromark
html = pyromark.html("# Hello world")
assert html == "<h1>Hello world</h1>\n"
Iterating over Markdown elements
import pyromark
for event in pyromark.events("# Hello world"):
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}")
Performance
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.
License
MIT