rustledger-parser 0.7.0

Beancount parser with error recovery and full syntax support
Documentation

rustledger-parser

Fast Beancount parser using Logos lexer and Chumsky parser combinators.

Features

  • Full Beancount syntax support (all 12 directive types)
  • Error recovery (continues parsing after errors)
  • Precise source locations for error reporting
  • SIMD-accelerated lexing via Logos

Architecture

Source (&str) → Logos tokenize() → Vec<SpannedToken> → Chumsky parser → Directives

Example

use rustledger_parser::parse;

let source = r#"
2024-01-15 * "Coffee Shop" "Morning coffee"
  Expenses:Food:Coffee  5.00 USD
  Assets:Cash
"#;

let result = parse(source);
assert!(result.errors.is_empty());
assert_eq!(result.directives.len(), 1);

Cargo Features

  • rkyv (default) - Enable rkyv serialization for binary caching

License

GPL-3.0