Cashier Server in Rust
This is a Cashier Server, written in Rust.
Purpose
This is a server component that runs on a device and provides Cashier PWA with the data from the (Beancount) ledger.
Normally it is used only for a Synchronization process, after which the Cashier continues to operate offline.
With the introduction of Rust Ledger project, some of the functionality may get deprecated as Beancount is now available in WASM and therefore can run in Cashier itself.
History
Originally, this was a Ledger-cli REST server for Cashier PWA.
Related projects
Existing projects include:
- Cashier Server, Python, repo
- Cashier Sync, Go, repo in Go
- Cashier Sync, Python, Github repo or Gitlab repo
- Cashier Server, Node, repo
- Cashier Ledger Server, Go, repo
The latest update includes porting the current functionality from the Python version in 2026-03. The current server is always paired with the actual version of Cashier:
The underlying engine has included:
- Rust Ledger (.beancount-compatible)
- Beancount
- Ledger-cli
Setup
Make sure that Rust Ledger is in the Path.
Configure it with the default ledger file or set LEDGER_FILE environment variable.
Run
Execute:
Development
VSCode + Rust extension(s).
cargo run in the project directory.
Publishing
The binary is published as a Cargo crate.