Metadata-Version: 2.4
Name: rustfava
Version: 0.1.1
Summary: Web interface for the accounting tool rustledger.
Author-email: Dominik Aumayr <dominik@aumayr.name>
Maintainer-email: Jakob Schnitzer <mail@jakobschnitzer.de>
License-Expression: MIT
Project-URL: Repository, https://github.com/rustledger/rustfava
Project-URL: Documentation, https://rustledger.github.io/rustfava
Project-URL: Issues, https://github.com/rustledger/rustfava/issues
Project-URL: Changelog, https://github.com/rustledger/rustfava/releases
Keywords: rustfava,fava,beancount,accounting,rustledger
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Information Technology
Classifier: Natural Language :: English
Classifier: Programming Language :: JavaScript
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Office/Business :: Financial :: Accounting
Classifier: Topic :: Office/Business :: Financial :: Investment
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: Babel<3,>=2.11
Requires-Dist: Flask-Babel<5,>=3
Requires-Dist: Flask<4,>=2.2
Requires-Dist: Jinja2<4,>=3
Requires-Dist: Werkzeug<4,>=2.2
Requires-Dist: beangulp>=0.1
Requires-Dist: cheroot<12,>=8
Requires-Dist: click<9,>=7
Requires-Dist: markdown2<3,>=2.3.0
Requires-Dist: ply>=3.11
Requires-Dist: pydantic>=2.0
Requires-Dist: watchfiles>=0.20.0
Provides-Extra: excel
Requires-Dist: pyexcel>=0.5; extra == "excel"
Requires-Dist: pyexcel-ods3>=0.5; extra == "excel"
Requires-Dist: pyexcel-xlsx>=0.5; extra == "excel"
Provides-Extra: beancount-compat
Requires-Dist: beancount<4,>=2; extra == "beancount-compat"
Dynamic: license-file

<div align="center">

# rustfava

**A beautiful desktop app for [rustledger](https://github.com/rustledger/rustledger)**

Manage your finances with plain text accounting.

[![CI](https://github.com/rustledger/rustfava/actions/workflows/ci.yml/badge.svg)](https://github.com/rustledger/rustfava/actions/workflows/ci.yml)
[![GitHub Release](https://img.shields.io/github/v/release/rustledger/rustfava)](https://github.com/rustledger/rustfava/releases)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
[![PyPI](https://img.shields.io/pypi/v/rustfava)](https://pypi.org/project/rustfava/)

![rustfava dashboard](docs/screenshot.png)

</div>

---

## Why rustfava?

| | |
|---|---|
| **Native app** | Double-click to launch, no terminal required |
| **Fava interface** | The familiar Fava web UI you know and love |
| **rustledger backend** | Blazing fast parsing via WebAssembly |
| **Cross-platform** | Linux, macOS (Intel & Apple Silicon), Windows |
| **Offline first** | Your financial data stays on your machine |
| **Multiple files** | Open multiple ledgers in tabs |

## Install

| Platform | Download |
|----------|----------|
| **macOS** | [`rustfava_0.1.0_aarch64.dmg`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_aarch64.dmg) |
| **Windows** | [`rustfava_0.1.0_x64-setup.exe`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_x64-setup.exe) |
| **Linux** | [`rustfava_0.1.0_amd64.AppImage`](https://github.com/rustledger/rustfava/releases/download/v0.1.0/rustfava_0.1.0_amd64.AppImage) |
| **Docker** | `docker run -p 5000:5000 -v /path/to/ledger:/data ghcr.io/rustledger/rustfava /data/main.beancount` |
| **PyPI** | `uv tool install rustfava` (requires Python 3.13+ and [wasmtime](https://wasmtime.dev/)) |

<sub>Missing your platform? [Open an issue](https://github.com/rustledger/rustfava/issues/new) to request it.</sub>

## Quick Start

### Desktop App

1. Download the app for your platform
2. Double-click to launch
3. Open your `.beancount` file

### Command Line

```bash
rustfava ledger.beancount
# Then visit http://localhost:5000
```

## What is this?

rustfava is a fork of [Fava](https://github.com/beancount/fava) that replaces the Python beancount parser with [rustledger](https://github.com/rustledger/rustledger), compiled to WebAssembly for faster parsing and processing.

The desktop app bundles everything into a native application using [Tauri](https://tauri.app/), so you get a fast, lightweight app with no dependencies.

## Links

- **Website**: https://rustledger.github.io/rustfava/
- **Documentation**: https://rustledger.github.io/rustfava/docs/
- **rustledger**: https://github.com/rustledger/rustledger

## License

MIT License - see [LICENSE](LICENSE) for details.
