| Crates.io | sphinx-ultra |
| lib.rs | sphinx-ultra |
| version | 0.3.0 |
| created_at | 2025-09-11 19:59:58.261358+00 |
| updated_at | 2025-10-13 14:48:16.323931+00 |
| description | High-performance Rust-based Sphinx documentation builder for large codebases |
| homepage | https://salioglu.github.io/sphinx-ultra |
| repository | https://github.com/salioglu/sphinx-ultra |
| max_upload_size | |
| id | 1834470 |
| size | 715,705 |
A high-performance Rust-based Sphinx documentation builder designed for large codebases with thousands of files.
๐ง This project is currently under active development and is NOT recommended for production usage.
Current Focus: The primary goal is validation and experimentation rather than producing perfectly matched Sphinx builds. We are:
Use Cases: Perfect for developers who want to experiment with high-performance documentation building or contribute to the development of next-generation documentation tools.
include_patterns and exclude_patterns supportFor detailed development roadmap, see Validation Features Plan which outlines our validation-focused approach.
Phase 1 (Next 2 months):
Phase 2-4 (Months 3-8):
Advanced UI Features (search indexing, complex templating, etc.) are intentionally deferred until validation foundation is solid.
Note: This project is in active development. The core build functionality works reliably, but advanced features are still being developed.
# Clone and build from source
git clone https://github.com/salioglu/sphinx-ultra.git
cd sphinx-ultra
cargo build --release
# The binary will be available at target/release/sphinx-ultra
# Build documentation
./target/release/sphinx-ultra build --source docs --output _build
# Clean build artifacts
./target/release/sphinx-ultra clean --output _build
# Show project statistics
./target/release/sphinx-ultra stats --source docs
# Get help
./target/release/sphinx-ultra --help
build: Build documentation from source filesclean: Remove build artifacts and output filesstats: Display project statistics and analysis# Parallel processing
sphinx-ultra build --jobs 8 --source docs --output _build
# Incremental builds (faster rebuilds)
sphinx-ultra build --incremental --source docs --output _build
# Clean before build
sphinx-ultra build --clean --source docs --output _build
# Save warnings to file
sphinx-ultra build --warning-file warnings.log --source docs --output _build
# Fail on warnings (useful for CI)
sphinx-ultra build --fail-on-warning --source docs --output _build
Sphinx Ultra supports multiple configuration formats and can auto-detect your setup:
Sphinx Ultra can read and parse existing Sphinx conf.py files:
# conf.py (existing Sphinx configuration works)
project = 'My Documentation'
version = '1.0'
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
html_theme = 'sphinx_rtd_theme'
Create a sphinx-ultra.yaml file for native configuration:
# Project information
project: "My Documentation"
version: "1.0.0"
copyright: "2024, My Company"
# Build settings
parallel_jobs: 8
max_cache_size_mb: 500
cache_expiration_hours: 24
# Output configuration
output:
html_theme: "sphinx_rtd_theme"
syntax_highlighting: true
highlight_theme: "github"
search_index: true
minify_html: false
# File pattern matching (Sphinx-compatible)
include_patterns:
- "**/*.rst"
- "**/*.md"
exclude_patterns:
- "_build/**"
- "drafts/**"
# Extensions (limited support currently)
extensions:
- "sphinx.ext.autodoc"
- "sphinx.ext.viewcode"
- "sphinx.ext.intersphinx"
# Theme configuration
theme:
name: "sphinx_rtd_theme"
options: {}
custom_css: []
custom_js: []
# Optimization settings
optimization:
parallel_processing: true
incremental_builds: true
document_caching: true
Most standard Sphinx configuration options are supported including:
include_patterns, exclude_patterns) - Full compatibility guideReal performance test results on documentation projects:
| Files | Build Time | Processing Rate | Memory Usage |
|---|---|---|---|
| 2 files | 8ms | 250 files/sec | ~10MB |
| 51 files | 44ms | 1,159 files/sec | ~15MB |
| 100+ files | ~85ms* | 1,176 files/sec* | ~20MB* |
*Projected based on linear scaling
While we don't have direct Sphinx comparison benchmarks yet, the processing speeds above represent significant performance improvements for documentation builds. The actual performance gain depends on:
The Rust builder consists of several key components:
Enable faster rebuilds by only processing changed files:
sphinx-ultra build --incremental --source docs --output _build
Control the number of parallel jobs:
# Use 16 parallel jobs for maximum performance on large projects
sphinx-ultra build --jobs 16 --source docs --output _build
# Use 1 job for debugging or memory-constrained environments
sphinx-ultra build --jobs 1 --source docs --output _build
# Save all warnings and errors to a log file
sphinx-ultra build --warning-file build.log --source docs --output _build
# Treat warnings as errors (useful for CI/CD)
sphinx-ultra build --fail-on-warning --source docs --output _build
# Combine both for strict CI builds
sphinx-ultra build -w build.log -W --source docs --output _build
# Use a specific configuration file
sphinx-ultra build --config my-config.yaml --source docs --output _build
# Configuration auto-detection order:
# 1. conf.py (if present)
# 2. sphinx-ultra.yaml
# 3. sphinx-ultra.yml
# 4. sphinx-ultra.json
# 5. Default configuration
# Clean output directory before building
sphinx-ultra build --clean --source docs --output _build
# Or clean manually
sphinx-ultra clean --output _build
# Get detailed project statistics
sphinx-ultra stats --source docs
Output includes:
# Debug-level logging for detailed build information
sphinx-ultra --verbose build --source docs --output _build
# Or set environment variable
RUST_LOG=debug sphinx-ultra build --source docs --output _build
Configuration Loading Errors
--config to specify config file explicitlyBuild Failures
Performance Issues
--jobs 1--incrementalsphinx-ultra --help for command overviewsphinx-ultra build --help for build optionsWe welcome contributors! This project is in active development and needs help with:
# Clone and build
git clone https://github.com/salioglu/sphinx-ultra.git
cd sphinx-ultra
./dev.sh setup
# Install git pre-commit hooks (recommended)
./dev.sh install-hooks
# Run development commands
./dev.sh fmt # Format code
./dev.sh clippy # Run linter
./dev.sh test # Run tests
./dev.sh pre-commit # Run all pre-commit checks
./dev.sh check # Run all checks including tests
# Build documentation
./dev.sh docs
Please see CONTRIBUTING.md for detailed guidelines.
Priority Areas: We need help with:
This project uses an automated release system with version validation to ensure consistency.
Download pre-built binaries from the Releases page.
# Setup release environment (one-time)
./scripts/setup.sh
# Create a new patch release (0.1.2 โ 0.1.3)
./scripts/release.sh --patch
# Create a new minor release (0.1.2 โ 0.2.0)
./scripts/release.sh --minor
# Create a new major release (0.1.2 โ 1.0.0)
./scripts/release.sh --major
# Preview what a release would do
./scripts/release.sh --dry-run --patch
The release script automatically:
Cargo.toml versionVersion Safety: The system prevents version mismatches between git tags and Cargo.toml. See scripts/README.md for detailed documentation.
This project is licensed under the MIT License - see the LICENSE file for details.