Skip to content

betterwebinit/rustyll

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rustyll

A blazing fast, Jekyll-compatible static site generator written in Rust.

Rustyll Logo

A Better Web Initiative Project

  • 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 📊

Philosophy

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.

Why Rustyll?

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

Getting Started

Installation

Using cargo:

cargo install rustyll

macOS (Homebrew):

brew install rustyll

Linux:

curl -sSL https://get.rustyll.dev | sh

Windows:

winget install rustyll

Quick Start

Create a new site:

rustyll new my-awesome-site
cd my-awesome-site

Build your site:

rustyll build

Serve your site locally:

rustyll serve

Features

Core Features

  • 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

Advanced Features

  • 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

Command Line Usage

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)

Examples

Build your site with incremental rebuilds:

rustyll build --incremental

Serve your site with live reload:

rustyll serve --livereload

Generate a site report:

rustyll report --verbose

Migrate from another static site generator:

rustyll migrate --engine jekyll --source ./my-jekyll-site --destination ./my-rustyll-site

Configuration

Rustyll 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]

Directory Structure

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

Roadmap

Note: This roadmap is not exhaustive and may change based on community feedback and project priorities.

Q4 2025 (Current) ✅

  • 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

Q1 2026

  • Plugin system improvements and documentation
  • JavaScript/CSS bundling and minification
  • Enhanced test coverage
  • Performance benchmarking suite
  • Binary distributions for all platforms

Q2 2026

  • Enhanced internationalization support
  • Content API for headless CMS usage
  • Advanced caching mechanisms
  • Integration with DesignKit UI
  • Improved SEO tools

Q3 2026

  • Enhanced migration tools for more SSGs
  • WebAssembly support for browser-based builds
  • Cloud build integration
  • Distributed content compilation

Future

  • 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!

Performance Benchmarks

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

Contributing

Rustyll is an open source project and contributions are welcome! To contribute:

  1. Fork the repository
  2. Clone your fork
  3. Install dependencies: cargo build
  4. Make your changes
  5. Run tests: cargo test
  6. Submit a pull request with your changes

We have a Code of Conduct that all contributors are expected to follow.

Development

# Build the project
cargo build

# Run tests
cargo test

# Run the development version
cargo run -- serve

The Better Web Initiative Ecosystem

Rustyll is part of Better Web Initiative:

  • Rustyll SSG: Ultra-fast static site generator (this project)
  • DesignKit UI: Web component library for modern interfaces

Community

License

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