{"id":701,"library":"rich-rst","title":"Rich reStructuredText Renderer","description":"A Python library that provides a beautiful reStructuredText renderer, integrating with the `rich` library to display reStructuredText documents with syntax highlighting and rich formatting directly in the terminal. It's currently at version 1.3.2 and maintains an active release cadence with regular updates and bug fixes.","status":"active","version":"1.3.2","language":"python","source_language":"en","source_url":"https://github.com/wasi-master/rich-rst","tags":["rich","rst","restructuredtext","console","terminal","documentation"],"install":[{"cmd":"pip install rich-rst","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Core dependency for rich terminal rendering.","package":"rich","optional":false},{"reason":"Core dependency for parsing reStructuredText documents.","package":"docutils","optional":false}],"imports":[{"symbol":"RestructuredText","correct":"from rich_rst import RestructuredText"},{"note":"Used for displaying rich content to the console.","symbol":"print","correct":"from rich import print"}],"quickstart":{"code":"from rich_rst import RestructuredText\nfrom rich import print\n\nrst_content = \"\"\"\nMy Document\n===========\n\nThis is a *simple* reStructuredText document.\n\n.. code:: python\n\n    print('Hello, Rich RST!')\n\n- Item 1\n- Item 2\n\n.. note:: This is a note.\n\"\"\"\n\n# Render the reStructuredText to the console\nprint(RestructuredText(rst_content))","lang":"python","description":"This quickstart demonstrates how to import `RestructuredText` from `rich_rst` and use it with `rich.print` to render a reStructuredText string directly to your terminal with rich formatting."},"warnings":[{"fix":"Upgrade `rich-rst` to the latest version (`pip install --upgrade rich-rst`) to ensure compatibility with recent `docutils` versions.","message":"Compatibility with `docutils` versions can be sensitive. `rich-rst` is regularly updated to track `docutils` changes (e.g., v1.3.2 updated for Docutils 0.22). Ensure your `docutils` version is compatible to avoid rendering issues.","severity":"gotcha","affected_versions":"<1.3.2"},{"fix":"Upgrade to `rich-rst` version 1.3.0 or newer to mitigate `optparse` deprecation warnings from `docutils`.","message":"Older versions of `rich-rst` (pre-1.3.0) might have exposed `docutils`' internal `optparse` deprecation warnings. While fixed in newer releases, this indicates potential for upstream dependency deprecations impacting users.","severity":"gotcha","affected_versions":"<1.3.0"},{"fix":"Simplify complex reStructuredText structures if rendering fidelity in the terminal is critical, or be prepared for minor visual discrepancies in highly advanced documents.","message":"While `rich-rst` supports many reStructuredText elements and common Sphinx roles (since v1.3.2), highly complex or obscure directives/roles might not render perfectly in the terminal environment as they would in Sphinx-generated HTML documentation. Test complex documents thoroughly.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-12T17:57:43.932Z","next_check":"2026-06-26T00:00:00.000Z","problems":[{"fix":"pip install rich-rst","cause":"The rich-rst package has not been installed in the current Python environment or the environment is not correctly activated.","error":"ModuleNotFoundError: No module named 'rich_rst'"},{"fix":"from rich_rst import RestructuredText\nfrom rich.console import Console\n\nconsole = Console()\nrst_content = \"Hello *World*!\"\nrst_renderer = RestructuredText(rst_content)\nconsole.print(rst_renderer)","cause":"The `rich_rst` module does not provide a top-level `render()` function; rendering is done by instantiating the `RestructuredText` class and printing it with a `rich.console.Console`.","error":"AttributeError: module 'rich_rst' has no attribute 'render'"},{"fix":"from rich_rst import RestructuredText\n# ... then use RestructuredText to render your content","cause":"The main class for rendering reStructuredText is named `RestructuredText`, not `RestructuredTextRenderer`, and it is directly importable from the `rich_rst` package.","error":"ImportError: cannot import name 'RestructuredTextRenderer' from 'rich_rst'"}],"ecosystem":"pypi","meta_description":null,"install_score":100,"install_tag":"verified","quickstart_score":80,"quickstart_tag":"verified","pypi_latest":"1.3.2","install_checks":{"last_tested":"2026-05-12","tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.33,"mem_mb":9.9,"disk_size":"34.4M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.37,"mem_mb":10.7,"disk_size":"34.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":2.8,"import_time_s":0.27,"mem_mb":9.9,"disk_size":"35M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.36,"mem_mb":10.7,"disk_size":"35M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.46,"mem_mb":11.1,"disk_size":"38.2M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.57,"mem_mb":12,"disk_size":"38.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":2.8,"import_time_s":0.41,"mem_mb":11.1,"disk_size":"39M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.43,"mem_mb":12,"disk_size":"39M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.38,"mem_mb":10.8,"disk_size":"29.7M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.43,"mem_mb":11.6,"disk_size":"29.7M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":2.8,"import_time_s":0.4,"mem_mb":10.8,"disk_size":"30M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.46,"mem_mb":11.6,"disk_size":"30M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.32,"mem_mb":10,"disk_size":"29.5M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.4,"mem_mb":11.3,"disk_size":"29.4M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":2.8,"import_time_s":0.34,"mem_mb":10,"disk_size":"30M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.38,"mem_mb":11.3,"disk_size":"30M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":null,"import_time_s":0.22,"mem_mb":8.9,"disk_size":"33.6M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.26,"mem_mb":9.8,"disk_size":"33.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":" $EXIT -eq 0 ","exit_code":0,"wheel_type":"wheel","failure_reason":null,"install_time_s":3.3,"import_time_s":0.21,"mem_mb":8.9,"disk_size":"34M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"default","exit_code":0,"wheel_type":null,"failure_reason":null,"install_time_s":null,"import_time_s":0.22,"mem_mb":9.8,"disk_size":"34M"}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":"verified","tag_description":"quickstart runs on critical runtimes, recently tested","results":[{"runtime":"python:3.10-alpine","exit_code":0},{"runtime":"python:3.10-slim","exit_code":0},{"runtime":"python:3.11-alpine","exit_code":0},{"runtime":"python:3.11-slim","exit_code":0},{"runtime":"python:3.12-alpine","exit_code":0},{"runtime":"python:3.12-slim","exit_code":0},{"runtime":"python:3.13-alpine","exit_code":0},{"runtime":"python:3.13-slim","exit_code":0},{"runtime":"python:3.9-alpine","exit_code":0},{"runtime":"python:3.9-slim","exit_code":0}]}}