Mistune:快速且强大的 Python Markdown 解析器
Mistune:快速且强大的 Python Markdown 解析器
lepture/mistune 是一个专注于性能的 Python Markdown 解析库,目前收获了 3,035 个 Star。它的设计目标是在保持功能完整的前提下,提供比同类工具更快的解析速度。


Mistune 目前已发布 v3 版本,支持渲染器和插件机制,开发者可以根据需要扩展解析行为。项目在 PyPI 和 conda-forge 上都有分发,安装没有额外依赖。
安装命令:
pip install mistune
基础用法:
import mistune
mistune.html(your_markdown_text)
将 Markdown 字符串传入 mistune.html(),即可输出对应的 HTML。API 设计扁平,学习成本很低,适合需要快速集成 Markdown 解析的项目。
性能是 Mistune 最突出的特点。项目维护者提供了一套 benchmark 脚本,覆盖多种 Markdown 语法场景。测试对比了 Mistune 的四种运行模式与其他主流解析器。
以 ATX 标题解析为例,Mistune 3.0.0 耗时约 13.9 毫秒。Python 的 markdown 模块需要 48.4 毫秒,markdown2 达到 379.3 毫秒,mistletoe 约 25.5 毫秒,markdown_it 约 42.4 毫秒。Mistune 在这个场景下优势明显。
Setext 标题测试中,Mistune fast 模式耗时 8.1 毫秒,slow 模式 9.0 毫秒,full 模式 9.5 毫秒。而 markdown 需要 30.7 毫秒,markdown2 达到 218.9 毫秒。
列表解析是 Markdown 解析器的核心能力。普通无序列表场景下,Mistune 约 60.9 毫秒,markdown 需要 83.8 毫秒,markdown2 约 175.4 毫秒,mistletoe 约 74.8 毫秒,markdown_it 约 103.0 毫秒。复杂无序列表中,Mistune 约 104.2 毫秒,markdown2 达到 337.2 毫秒。
有序列表方面,普通场景 Mistune 约 25.1 毫秒,复杂场景约 46.2 毫秒。这两个场景下 Mistune 都优于所有对比工具。
引用块解析的差距最为明显。Mistune 约 15.5 毫秒,mistletoe 约 28.6 毫秒,markdown 约 63.0 毫秒,markdown_it 约 37.4 毫秒,而 markdown2 在同场景下超过 700 毫秒。
Fenced 代码块解析中,Mistune 约 4.3 毫秒,markdown 需要 33.8 毫秒,markdown2 约 92.5 毫秒,mistletoe 约 9.2 毫秒,markdown_it 约 12.5 毫秒。
段落解析是最常见的负载场景。Mistune fast 模式约 93.6 毫秒,slow 模式因完整特性支持达到 561.3 毫秒。对比工具中,markdown 约 304.1 毫秒,markdown2 约 267.8 毫秒,mistletoe 约 779.3 毫秒,markdown_it 约 825.5 毫秒。
链接解析包含三个子场景。自动链接识别中,Mistune 约 3.8 毫秒,对比工具普遍在 6 毫秒以上。标准链接解析中,Mistune 约 21.9 毫秒。引用链接解析中,Mistune 约 47.7 毫秒。这三个场景 Mistune 都保持领先。
综合 readme 测试更能说明整体性能。Mistune fast 模式约 53.9 毫秒,3.0.0 版本约 56.6 毫秒。mistletoe 约 110.1 毫秒,markdown 约 211.0 毫秒,markdown2 约 533.4 毫秒,markdown_it 约 248.0 毫秒。
从 benchmark 数据可以看出,Mistune 的 fast 模式在绝大多数场景下都提供了最快的解析速度。slow 模式和 full 模式在保持功能完整的同时,速度虽有下降,但依然优于大部分对比工具。
项目还提供了付费插件定制渠道。有特殊需求的用户可以通过 Sponsors 联系作者,创建自定义插件或指令。
安全漏洞采用私下披露机制。作者接受邮件报告,提供了 PGP 公钥指纹。项目也接入了 Tidelift 的安全协调流程。
Mistune 采用 BSD 许可证开源。

浙公网安备 33010602011771号