cashier-server 1.0.1

Cashier Ledger-cli server component
# 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](https://github.com/alensiljak/cashier) PWA.

## Related projects


Existing projects include:

- Cashier Server, Python, [repo]https://github.com/alensiljak/cashier-server-python
- Cashier Sync, Go, [repo]https://gitlab.com/alensiljak/cashiersync-go in Go
- Cashier Sync, Python, Github [repo]https://github.com/alensiljak/cashiersync-python or Gitlab [repo]https://gitlab.com/alensiljak/cashiersync
- Cashier Server, Node, [repo]https://github.com/alensiljak/cashier-server-node
- Cashier Ledger Server, Go, [repo]https://github.com/alensiljak/cashier-ledger-server-go

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:

- Cashier, Sveltekit, [repo]https://github.com/alensiljak/cashier-sveltekit
- Cashier, Blazor, [repo]https://github.com/alensiljak/cashier-blazor
- Cashier, Vue/2/3, [repo]https://github.com/alensiljak/cashier

The underlying engine has included:

- Rust Ledger (.beancount-compatible)
- Beancount
- Ledger-cli

## Setup


```sh
cargo install cashier-server
```

Make sure that Rust Ledger is in the Path.
Configure it with the default ledger file or set `LEDGER_FILE` environment variable.

## Run


Execute:

```sh
cashier-server
```

## Development


VSCode + Rust extension(s).
`cargo run` in the project directory.

## Publishing


The binary is published as a Cargo [crate](https://crates.io/crates/cashier-server).

```sh
cargo publish
```