{"id":16121918,"url":"https://github.com/monosans/pyromark","last_synced_at":"2025-04-09T23:15:11.819Z","repository":{"id":163939253,"uuid":"637400741","full_name":"monosans/pyromark","owner":"monosans","description":"Blazingly fast Markdown parser for Python written in Rust.","archived":false,"fork":false,"pushed_at":"2025-04-08T13:35:38.000Z","size":1385,"stargazers_count":34,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T23:15:04.189Z","etag":null,"topics":["converter","html"],"latest_commit_sha":null,"homepage":"https://pyromark.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/monosans.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-07T12:54:53.000Z","updated_at":"2025-04-08T13:35:42.000Z","dependencies_parsed_at":"2023-12-02T07:25:18.593Z","dependency_job_id":"dc8a2d13-05eb-4e86-a850-e418efecc717","html_url":"https://github.com/monosans/pyromark","commit_stats":{"total_commits":560,"total_committers":5,"mean_commits":112.0,"dds":0.4660714285714286,"last_synced_commit":"4091e905c8cde7396fd8474880880af11865eaac"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosans%2Fpyromark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosans%2Fpyromark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosans%2Fpyromark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monosans%2Fpyromark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monosans","download_url":"https://codeload.github.com/monosans/pyromark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248125591,"owners_count":21051770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["converter","html"],"created_at":"2024-10-09T21:08:43.595Z","updated_at":"2025-04-09T23:15:11.789Z","avatar_url":"https://github.com/monosans.png","language":"Python","readme":"# pyromark\n\n[![CI](https://github.com/monosans/pyromark/actions/workflows/ci.yml/badge.svg)](https://github.com/monosans/pyromark/actions/workflows/ci.yml)\n[![Downloads](https://static.pepy.tech/badge/pyromark)](https://pepy.tech/project/pyromark)\n\npyromark (stands for Python Rust Optimized Markdown) is a blazingly fast CommonMark-compliant Markdown parser for Python.\n\nUses [pulldown-cmark](https://github.com/raphlinus/pulldown-cmark) Rust crate under the hood.\n\n## Installation\n\n```bash\npip install -U pyromark\n```\n\n## Documentation\n\n\u003chttps://pyromark.readthedocs.io\u003e\n\n## Basic examples\n\nSee documentation for more comprehensive examples.\n\n### Convert Markdown to HTML\n\n```python\nimport pyromark\n\nhtml = pyromark.html(\"# Hello world\")\nassert html == \"\u003ch1\u003eHello world\u003c/h1\u003e\\n\"\n```\n\n### Iterating over Markdown elements\n\n```python\nimport pyromark\n\nfor event in pyromark.events(\"# Hello world\"):\n    # All event types are fully type annotated\n    # so you will get static type checking\n    # and Tab completions in your IDE!\n    match event:\n        case {\"Start\": {\"Heading\": {\"level\": heading_level}}}:\n            print(f\"Heading with {heading_level} level started\")\n        case {\"Text\": text}:\n            print(f\"Got {text!r} text\")\n        case {\"End\": {\"Heading\": heading_level}}:\n            print(f\"Heading with {heading_level} level ended\")\n        case other_event:\n            print(f\"Got {other_event!r}\")\n```\n\n## Performance\n\n160x faster than [markdown2](https://pypi.org/project/markdown2/),\n130x faster than [Markdown](https://pypi.org/project/Markdown/),\n119x faster than [mistletoe](https://pypi.org/project/markdown-it-py/),\n103x faster than [markdown-it-py](https://pypi.org/project/markdown-it-py/),\n75x faster than [mistune](https://pypi.org/project/mistune/).\n\nIf you use threading, the difference with other libraries will be even more enormous, since pyromark releases the [GIL](https://docs.python.org/3/glossary.html#term-global-interpreter-lock).\n\nSee [benchmark](https://pyromark.readthedocs.io/en/latest/performance/).\n\n## License\n\n[MIT](https://github.com/monosans/pyromark/blob/main/LICENSE)\n","funding_links":[],"categories":["Text Processing \u0026 Parsing"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonosans%2Fpyromark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonosans%2Fpyromark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonosans%2Fpyromark/lists"}