Skip to content

plissken logo

plissken

Documentation generator for Rust-Python hybrid projects

plissken generates beautiful, unified documentation for projects that combine Rust and Python code, with special support for PyO3 and maturin bindings.

Features

  • Unified Documentation - Single documentation site for both Python and Rust APIs
  • Cross-Reference Links - Automatic bidirectional links between Python classes and their Rust implementations
  • Multiple SSG Support - Generate docs for MkDocs Material or mdBook
  • Smart Discovery - Auto-detect Python packages and Rust crates
  • Customizable Themes - Full theme support with CSS variables for dark mode
  • Template Overrides - Customize any template without forking

Quick Example

# Initialize configuration
plissken init

# Generate documentation
plissken render

# Serve with MkDocs
mkdocs serve

Installation

curl -fsSL https://raw.githubusercontent.com/colliery-io/plissken/main/install.sh | bash
cargo install plissken
git clone https://github.com/colliery-io/plissken.git
cd plissken
cargo install --path crates/plissken-cli

Documentation Structure

When you run plissken render, it generates a documentation structure like:

docs/api/
  mypackage.md           # Python module page
  mypackage/
    submodule.md         # Nested module page
  rust/
    mycrate.md           # Rust crate page
    mycrate/
      module.md          # Rust submodule page
  _nav.yml               # Navigation for mkdocs.yml

Cross-Reference Magic

For PyO3 bindings, plissken automatically creates bidirectional links:

In Python docs:

Rust Implementation: mycrate::MyStruct → links to Rust doc page

In Rust docs:

Python API: mypackage.MyClass → links to Python doc page

Learn plissken