A blazing fast, Jekyll-compatible static site generator written in Rust.
- Lightning-fast build times ⚡
- Compatible with Jekyll sites and themes 🔄
- Markdown rendering with extensive customization options 📝
- Liquid templating engine with powerful filters and tags 💧
- Built-in development server with live reload 🔄
- Flexible configuration system 🔧
- Modern front matter support (YAML, TOML, JSON) 📋
- Advanced asset processing pipeline 🏗️
- Incremental builds for large sites 🚀
- Comprehensive site reporting and analysis tools 📊
Rustyll was born from the belief that static site generation should be:
- Fast without compromise: Build times should be measured in milliseconds, not minutes.
- Familiar yet powerful: Compatible with existing Jekyll sites while offering powerful new capabilities.
- Extensible by design: A plugin system that makes it easy to extend functionality.
- Modern and future-proof: Built with modern Rust for reliability, security, and performance.
- Developer-friendly: Clear error messages, comprehensive documentation, and sensible defaults.
As part of the Better Web Initiative, we're committed to making the web faster, more accessible, and more sustainable. We believe that by building tools that respect these principles, we can contribute to a web that works better for everyone.
Rustyll combines the best of both worlds: the familiar Jekyll ecosystem with the performance and safety of Rust. Whether you're migrating an existing Jekyll site or starting fresh, Rustyll offers significant advantages:
- Dramatically faster builds - Sites build 10-100x faster than with Ruby-based Jekyll
- Memory efficient - Build even the largest sites with minimal RAM requirements
- Improved security - Benefit from Rust's memory safety and security guarantees
- Modern features - Advanced asset pipelines, better incremental builds, and more
- Jekyll compatibility - Use existing Jekyll themes and plugins with minimal changes
cargo install rustyllbrew install rustyllcurl -sSL https://get.rustyll.dev | shwinget install rustyllCreate a new site:
rustyll new my-awesome-site
cd my-awesome-siteBuild your site:
rustyll buildServe your site locally:
rustyll serve- Fast Builds: Build even large sites in milliseconds
- Jekyll Compatibility: Easy migration from Jekyll
- Markdown Processing: Advanced markdown rendering with extensions
- Liquid Templates: Powerful templating with custom filters and tags
- Front Matter: Support for YAML, TOML and JSON front matter
- Layouts: Flexible layout system with inheritance
- Collections: Organize and manage content collections
- Data Files: Import data from YAML, JSON, CSV, and more
- Assets Pipeline: Process CSS, JavaScript, and images
- Development Server: Built-in server with live reload
- Incremental Builds: Only rebuild what changed
- Site Reports: Generate detailed reports about your site
- Migration Tools: Easily migrate from other static site generators
- Watch Mode: Automatically rebuild when files change
- Powerful CLI: Comprehensive command line interface
- Configuration: Flexible configuration system
- Plugin System: Extend functionality with plugins
USAGE:
rustyll [OPTIONS] [SUBCOMMAND]
OPTIONS:
-s, --source <DIR> Source directory (defaults to ./)
-d, --destination <DIR> Destination directory (defaults to ./_site)
--layouts <DIR> Layouts directory (defaults to ./_layouts)
--safe Safe mode (defaults to false)
-g, --debug Enable verbose debugging
-t, --trace Show the full backtrace when an error occurs
-h, --help Print help information
-V, --version Print version information
SUBCOMMANDS:
build Build your site
serve Serve your site locally
clean Clean the site (removes site output and metadata file)
report Generate a comprehensive report of your site
migrate Migrate a site from another static site generator
new Creates a new Rustyll site scaffold
help Print this message or the help of the given subcommand(s)
Build your site with incremental rebuilds:
rustyll build --incrementalServe your site with live reload:
rustyll serve --livereloadGenerate a site report:
rustyll report --verboseMigrate from another static site generator:
rustyll migrate --engine jekyll --source ./my-jekyll-site --destination ./my-rustyll-siteRustyll can be configured using a _config.yml file in your site's root directory. Here's an example:
# Site settings
title: My Awesome Site
description: A site built with Rustyll
baseurl: ""
url: "https://example.com"
# Build settings
markdown: kramdown
permalink: /:categories/:year/:month/:day/:title/
exclude:
- Gemfile
- Gemfile.lock
- node_modules
- vendor
# Collections
collections:
posts:
output: true
projects:
output: true
# Custom settings
author:
name: Your Name
email: [email protected]A typical Rustyll site looks like this:
my-site/
├── _config.yml # Site configuration
├── _data/ # Data files (YAML, JSON, CSV)
├── _drafts/ # Unpublished posts
├── _includes/ # Reusable content fragments
├── _layouts/ # Layout templates
├── _posts/ # Blog posts
├── _sass/ # Sass partials
├── _site/ # Generated site (output)
├── assets/ # Site assets (CSS, JS, images)
├── collections/ # Custom content collections
└── index.md # Homepage
Note: This roadmap is not exhaustive and may change based on community feedback and project priorities.
- Initial release v0.8.0 and core functionality
- Jekyll compatibility layer
- Advanced markdown rendering with syntax highlighting
- Liquid templating with custom filters and tags
- Improved asset pipeline
- Performance optimizations (10-100x faster than Jekyll)
- Advanced front matter processing (YAML, TOML, JSON)
- Migration tools for Jekyll and other SSGs
- Development server with live reload
- Plugin system foundation
- Plugin system improvements and documentation
- JavaScript/CSS bundling and minification
- Enhanced test coverage
- Performance benchmarking suite
- Binary distributions for all platforms
- Enhanced internationalization support
- Content API for headless CMS usage
- Advanced caching mechanisms
- Integration with DesignKit UI
- Improved SEO tools
- Enhanced migration tools for more SSGs
- WebAssembly support for browser-based builds
- Cloud build integration
- Distributed content compilation
- AI-assisted content generation
- Edge function integrations
- Real-time collaboration features
- Advanced analytics and insights
Want to influence our roadmap? Open an issue with your suggestion!
Rustyll is designed to be incredibly fast. Here are some comparisons with other static site generators (building a site with 1000 pages):
| Generator | Build Time | Memory Usage |
|---|---|---|
| Rustyll | 0.8s | 45 MB |
| Jekyll | 25.3s | 320 MB |
| Hugo | 1.2s | 65 MB |
| Eleventy | 8.5s | 180 MB |
| Next.js (SSG) | 12.1s | 350 MB |
Rustyll is an open source project and contributions are welcome! To contribute:
- Fork the repository
- Clone your fork
- Install dependencies:
cargo build - Make your changes
- Run tests:
cargo test - Submit a pull request with your changes
We have a Code of Conduct that all contributors are expected to follow.
# Build the project
cargo build
# Run tests
cargo test
# Run the development version
cargo run -- serveRustyll is part of Better Web Initiative:
- Rustyll SSG: Ultra-fast static site generator (this project)
- DesignKit UI: Web component library for modern interfaces
Rustyll is available under the AGPL-3.0 License.
Built with ❤️ by the Better Web Initiative for the future of web development.
⭐ Star us on GitHub • 🐦 Follow us on Twitter • 🌐 Visit our website