Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

rsspell is a fast and efficient spell checker designed for modern development workflows. It supports multiple file formats and provides a simple, command-line interface for checking documents for typos.

Key Features

  • Fast & Efficient: Optimized for speed using Rust and the Hunspell-style affix compression system.
  • Markdown & SVG Support: Specifically handles text within Markdown and SVG files.
  • Extensible: Easily install additional dictionaries from the CLI.
  • Offline First: Includes a built-in en-US dictionary for immediate, offline use.

Usage

rsspell is easy to use from the command line. Below are the most common commands and flags.

Scanning for Typos

To scan all Markdown and SVG files in the current directory (and its subdirectories):

rsspell scan

To scan a specific directory or file:

rsspell scan path/to/your/files

To specify a language (e.g., for installed dictionaries):

rsspell scan --lang de-DE

To ignore specific words via the command line:

rsspell scan --ignore word1 word2

.rsspellignore File

You can also create a .rsspellignore file in the root of your project to skip words automatically. Each line should contain one word to ignore. Lines starting with # are treated as comments.

Example .rsspellignore:

# Project-specific technical terms
rsspell
zspell
veltzer

Managing Dictionaries

rsspell includes a built-in en-US dictionary. You can manage additional dictionaries with the dicts subcommand.

List Installed Dictionaries

rsspell dicts list

List Dictionaries Available for Download

rsspell dicts list-remote

Install a New Dictionary

To install a dictionary from the wooorm/dictionaries repository:

rsspell dicts install de-DE

Show Dictionary Path

To see where dictionaries are stored on your system:

rsspell dicts path

Other Commands

Show Version Information

rsspell version

Generate Shell Completions

rsspell complete <SHELL>

Where <SHELL> is one of bash, elvish, fish, powershell, or zsh.

Design Decisions

rsspell is built with speed and simplicity in mind. This section covers key design choices made during development.

Built-in en-US Dictionary

The rsspell tool includes the en-US dictionary (dictionaries/en_US.aff and dictionaries/en_US.dic) embedded directly in the binary. This choice was made for several reasons:

  1. Immediate Value: The tool works out-of-the-box for the most common use case (English spell-checking) without requiring any initial setup or dictionary downloads.
  2. Offline Functionality: Users can perform spell-checks in English even without an active internet connection.
  3. Robust Fallback: The embedded dictionary serves as a reliable default if external dictionary management fails or is not used.

Dictionary Structure (Hunspell Format)

The dictionary is split into two files (dictionaries/en_US.aff and dictionaries/en_US.dic) following the Hunspell standard. This dual-file approach is used for affix compression, which significantly reduces the dictionary’s footprint:

  • .dic (Dictionary File): Contains a list of base words (stems) along with flags that indicate which rules apply to them.
  • .aff (Affix File): Defines the grammatical rules for prefixes and suffixes (e.g., how to handle plurals, tenses, and possessives).

By separating the rules from the word list, rsspell can recognize hundreds of thousands of word variations without needing to store them all explicitly, keeping the binary size small and memory usage efficient.

Supported Formats

rsspell currently focuses on file formats where textual content is mixed with structured data.

Markdown

rsspell uses the pulldown-cmark library to parse Markdown documents. This ensures that only the text content is checked, while Markdown syntax like links, code blocks, and headers are properly ignored or parsed.

SVG

For SVG files, rsspell parses the XML structure and checks text elements. This is useful for diagrams and icons where typos can often go unnoticed.

Release Info

This page is generated automatically by the docs deployment workflow.

  • Version: 0.1.11
  • Git tag: v0.1.11
  • Git commit: 8baf04f5f07c33db64f4e16bee7f25fe199906c0
  • Released at: 2026-10-16 18:16:00 UTC
  • Workflow: CI run #70