mrml
A Python wrapper for MRML (Rust port of MJML).
Decision gist · record as of 2026-08-14
Yes, if you need to convert MJML to HTML and can tolerate medium install friction from compiled bindings. The package is actively maintained, has no security issues, and offers a clean API with no runtime dependencies. The main caveat is the unclear license status—verify licensing terms before adopting in proprietary projects. Installation should be straightforward on common platforms thanks to pre-built wheels.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.7 or later; compiled wheels available for most platforms but may require compilation on unsupported architectures.
- Medium install friction due to compiled Rust bindings, but wheels are available for common platforms (x86_64, ARM, Windows, macOS).
- Package is actively maintained with recent releases and no known vulnerabilities.
License · maintenance · safety
(unclear) — License status is unclear—no SPDX identifier or raw license text is available in the package metadata. Verify the actual license before using in proprietary or restricted contexts.
last release 2026-04-25 (111 days) · last repo commit 2026-08-11 · 504 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,005,266 downloads/mo, #4,530 on PyPI
Alternatives
Verify before relying
import mrml
result = mrml.to_html("<mj-body><mj-text>Hello</mj-text></mj-body>")
print(result.content)- Whether the package includes documentation or examples beyond the GitHub repository.
- Exact license terms and compatibility with common open-source and proprietary workflows.
- Performance characteristics and limits for large or complex MJML templates.
What it is and what it does
mrml is a Python wrapper around a Rust reimplementation of MJML, a markup language designed for building responsive email templates. It translates MJML syntax into production-ready HTML, handling the complexity of email client compatibility so developers don't have to. The package has no runtime dependencies and exposes a simple API: pass MJML markup to `to_html()` and receive HTML output. It supports advanced features like file includes via a pluggable loader system, allowing you to compose templates from separate files or in-memory sources.
The package is built on compiled Rust bindings, which means installation requires platform-specific wheels rather than pure Python code. Wheels are provided for common architectures (x86_64, ARM, PowerPC, s390x on Linux; x86_64 and ARM on macOS; x86_64 on Windows) and Python versions 3.10–3.12, with declared support back to Python 3.7. The project is actively maintained, with recent commits and no known security vulnerabilities.
Use it for
- Generate responsive email HTML from MJML markup without manually handling email client quirks.
- Build email template systems that compose reusable MJML components via includes.
- Convert MJML designs to production HTML in CI/CD pipelines or backend services.
- Prototype responsive emails quickly using MJML's higher-level syntax instead of raw HTML.
- Integrate email template rendering into Python web frameworks or batch email services.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to convert MJML to HTML and can tolerate medium install friction from compiled bindings.
The package is actively maintained, has no security issues, and offers a clean API with no runtime dependencies. The main caveat is the unclear license status—verify licensing terms before adopting in proprietary projects. Installation should be straightforward on common platforms thanks to pre-built wheels.
Install
mrml on PyPI
Before you install
Medium install friction due to compiled Rust bindings, but wheels are available for common platforms (x86_64, ARM, Windows, macOS). Package is actively maintained with recent releases and no known vulnerabilities.
Requires Python 3.7 or later; compiled wheels available for most platforms but may require compilation on unsupported architectures.
License in practice
License status is unclear—no SPDX identifier or raw license text is available in the package metadata. Verify the actual license before using in proprietary or restricted contexts.
Quickstart
import mrml
result = mrml.to_html("<mj-body><mj-text>Hello</mj-text></mj-body>")
print(result.content)
Verify before relying
- Whether the package includes documentation or examples beyond the GitHub repository.
- Exact license terms and compatibility with common open-source and proprietary workflows.
- Performance characteristics and limits for large or complex MJML templates.
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.7 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 111 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,005,266 / month, #4,530 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: Rust |
Evidence: mrml-0.2.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; mrml-0.2.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl; mrml-0.2.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; mrml-0.2.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; mrml-0.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; mrml-0.2.4-cp310-cp310-manylinux_2_28_aarch64.whl; mrml-0.2.4-cp310-cp310-win_amd64.whl; mrml-0.2.4-cp311-cp311-macosx_10_12_x86_64.whl; mrml-0.2.4-cp311-cp311-macosx_11_0_arm64.whl; mrml-0.2.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; mrml-0.2.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; mrml-0.2.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; mrml-0.2.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl; mrml-0.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; mrml-0.2.4-cp311-cp311-manylinux_2_28_aarch64.whl; mrml-0.2.4-cp311-cp311-win_amd64.whl; mrml-0.2.4-cp312-cp312-macosx_10_12_x86_64.whl; mrml-0.2.4-cp312-cp312-macosx_11_0_arm64.whl; mrml-0.2.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; mrml-0.2.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “responsive email generation”
- mrmlConverts MJML (a markup language for responsive emails) to HTML using…
- mjmlConverts MJML (a markup language for responsive emails) to HTML…
- mjml-pythonCompiles MJML email templates to HTML at runtime using an embedded…
Give your agent the search over MCP, or paste the wish link into any chat.
More HTML packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Beautiful Soup parses HTML and XML documents into a navigable tree, providing Pythonic methods to search, iterate, and modify the parsed content.
Install it if you need to parse or extract data from markup documents.
lxml provides Python bindings to libxml2 and libxslt, enabling parsing, validation, and transformation of XML and HTML documents through an ElementTree-compatible API with support for XPath, XSLT, and schema validation.
Install it if you need robust XML/HTML parsing, validation, or transformation; avoid it only if you must stay pure-Python and can accept slower performance.
Docutils converts plaintext documentation in reStructuredText format into multiple output formats including HTML, XML, and LaTeX using a modular processing system.
Converts Markdown text to HTML using a Python implementation of John Gruber's Markdown specification, with support for extensions.
Install it if you need to parse Markdown in Python.
See also mjml-python · mjml · django-mjml · html5tagger · email-to · css-inline · tinyhtml · htmlBuilder · cohere-melody