rustledger  by rustledger

Fast, Beancount-compatible plain text accounting

Created 4 months ago
261 stars

Top 97.2% on SourcePulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

Summary

Rustledger offers a high-performance, dependency-free implementation of the Beancount plain-text accounting system. Targeting Beancount users seeking speed and simplicity, it provides significantly faster ledger parsing and validation, a single-binary deployment, and enhanced editor integration, streamlining financial tracking workflows.

How It Works

Written in Rust, rustledger achieves 10-30x speed improvements over Python Beancount by leveraging Rust's performance characteristics and efficient data structures. It provides a native implementation of Beancount's parsing, validation, and BQL query engine, eliminating the need for a Python runtime and offering a drop-in replacement experience with enhanced error reporting and features like an LSP server and WASM support.

Quick Start & Requirements

Installation is available via package managers (brew, yay, dnf, scoop), cargo, nix, Docker, or pre-compiled binaries from GitHub Releases. WASM builds can be installed via npm. No specific non-default hardware prerequisites are mentioned for core functionality.

  • Docs: docs.rs for API documentation.
  • Benchmarks: Detailed benchmark documentation is available at BENCHMARKING.md.

Highlighted Details

  • Achieves 10-30x faster parsing and validation compared to Python Beancount.
  • Features a built-in Language Server Protocol (LSP) for real-time IDE diagnostics, autocompletion, and refactoring.
  • Includes a comprehensive bank import pipeline (rledger extract) with auto-detection, multi-tiered categorization (Rules, Dictionary, ML), transfer detection, and duplicate prevention.
  • Supports WebAssembly (WASM) for browser and Node.js environments, and a Model Context Protocol (MCP) server for AI assistants.
  • Offers 30 built-in plugins and compatibility with pure-Python Beancount plugins via a WASI sandbox.

Maintenance & Community

The project demonstrates active development through CI pipelines and nightly benchmarks. Funding is supported via Liberapay. Community channels like Discord or Slack are not explicitly mentioned in the README.

Licensing & Compatibility

Licensed under GPL-3.0, which imposes copyleft requirements. Commercial licensing options are available upon direct contact.

Limitations & Caveats

Integration with the Fava web interface is pending. Python plugins requiring C extensions or network access are not supported due to the WASI sandbox limitations. Module-based Python plugins are only functional if rustledger provides a native equivalent.

Health Check
Last Commit

16 hours ago

Responsiveness

Inactive

Pull Requests (30d)
173
Issues (30d)
87
Star History
45 stars in the last 30 days

Explore Similar Projects

Starred by Lewis Tunstall Lewis Tunstall(Research Engineer at Hugging Face), Shizhe Diao Shizhe Diao(Author of LMFlow; Research Scientist at NVIDIA), and
12 more.

datatrove by huggingface

0.3%
3k
Data processing library for large-scale text data
Created 2 years ago
Updated 1 day ago
Feedback? Help us improve.