@rustledger/wasm 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,8 +7,10 @@
7
7
  Parse and validate your ledger faster than Python beancount.
8
8
 
9
9
  [![CI](https://github.com/rustledger/rustledger/actions/workflows/ci.yml/badge.svg)](https://github.com/rustledger/rustledger/actions/workflows/ci.yml)
10
+ [![Compatibility](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/rustledger/rustledger/compatibility/.github/badges/compat-badge.json)](https://github.com/rustledger/rustledger/actions/workflows/compat.yml)
10
11
  [![GitHub Release](https://img.shields.io/github/v/release/rustledger/rustledger)](https://github.com/rustledger/rustledger/releases)
11
12
  [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)
13
+ [![Liberapay](https://img.shields.io/liberapay/gives/rustledger.svg?logo=liberapay)](https://liberapay.com/rustledger)
12
14
 
13
15
  </div>
14
16
 
@@ -18,26 +20,31 @@ Parse and validate your ledger faster than Python beancount.
18
20
 
19
21
  | | |
20
22
  |---|---|
21
- | **Much faster** | Parse and validate large ledgers in milliseconds ([see benchmarks](#performance)) |
22
- | **Single binary** | No Python, no dependencies, just download and run |
23
+ | **10-30x faster** | Parse and validate large ledgers in milliseconds ([see benchmarks](#performance)) |
24
+ | **No dependencies** | No Python runtime, no libraries to install |
23
25
  | **Drop-in replacement** | Compatible `bean-*` CLI commands for easy migration |
24
26
  | **Full compatibility** | Parses any valid beancount file |
27
+ | **Editor support** | LSP server for VS Code, Neovim, Helix, and more |
28
+ | **AI-ready** | MCP server for Claude, Cursor, and other AI assistants |
29
+ | **Runs anywhere** | WebAssembly support for browser and Node.js |
30
+ | **Better errors** | Detailed error messages with source locations |
31
+ | **20 built-in plugins** | Plus Python plugin compatibility via WASI sandbox |
25
32
 
26
33
  ## Install
27
34
 
28
35
  | Platform | Command |
29
36
  |----------|---------|
30
- | **Script** | `curl -sSfL rustledger.github.io/i \| sh` |
31
37
  | **macOS** | `brew install rustledger/rustledger/rustledger` |
32
- | **Ubuntu/Debian** | `sudo add-apt-repository ppa:robcohen/rustledger && sudo apt install rustledger` |
33
- | **Fedora/RHEL** | `sudo dnf copr enable rustledger/rustledger && sudo dnf install rustledger` |
34
- | **Arch** | `yay -S rustledger-bin` |
35
38
  | **Windows** | `scoop bucket add rustledger https://github.com/rustledger/scoop-rustledger && scoop install rustledger` |
36
39
  | **Cargo** | `cargo binstall rustledger` or `cargo install rustledger` |
40
+ | **Fedora/RHEL** | `sudo dnf copr enable robcohen/rustledger && sudo dnf install rustledger` |
37
41
  | **Nix** | `nix run github:rustledger/rustledger` |
38
42
  | **Docker** | `docker run --rm -v "$PWD:/data" ghcr.io/rustledger/rustledger /data/ledger.beancount` |
39
43
  | **Binaries** | [GitHub Releases](https://github.com/rustledger/rustledger/releases) |
40
- | **npm** | `npm install @rustledger/wasm` (WebAssembly) |
44
+ | **npm (WASM)** | `npm install @rustledger/wasm` |
45
+ | **npm (MCP)** | `npx @rustledger/mcp-server` ([Model Context Protocol](https://modelcontextprotocol.io) server) |
46
+
47
+ <sub>Missing your platform? [Open an issue](https://github.com/rustledger/rustledger/issues/new) to request it.</sub>
41
48
 
42
49
  ## Quick Start
43
50
 
@@ -96,6 +103,7 @@ rledger-format --in-place ledger.beancount
96
103
  | `rustledger-query` | BQL query engine |
97
104
  | `rustledger-plugin` | 20 built-in plugins + Python plugin support |
98
105
  | `rustledger-importer` | CSV/OFX import framework |
106
+ | `rustledger-lsp` | Language Server Protocol for editor integration |
99
107
  | `rustledger-wasm` | WebAssembly bindings for JavaScript/TypeScript |
100
108
 
101
109
  <details>
@@ -159,6 +167,31 @@ rledger-format --in-place ledger.beancount
159
167
 
160
168
  <sub>Benchmarks run nightly on 10K transaction ledgers. [View workflow →](https://github.com/rustledger/rustledger/actions/workflows/bench.yml)</sub>
161
169
 
170
+ <details>
171
+ <summary><strong>Benchmark details</strong></summary>
172
+
173
+ **What's measured:**
174
+ - **Validation**: Parse ledger + validate (balance assertions, account opens, etc.)
175
+ - **Balance Report**: Parse + compute all account balances
176
+
177
+ **Memory efficiency:**
178
+ rustledger typically uses 3-5x less memory than Python beancount thanks to Rust's zero-cost abstractions and efficient data structures.
179
+
180
+ **Run locally:**
181
+ ```bash
182
+ # Quick comparison (requires nix)
183
+ nix develop .#bench
184
+ ./scripts/bench.sh
185
+
186
+ # Criterion micro-benchmarks
187
+ cargo bench -p rustledger-core
188
+ cargo bench -p rustledger-parser
189
+ ```
190
+
191
+ See [BENCHMARKING.md](docs/BENCHMARKING.md) for detailed benchmark documentation.
192
+
193
+ </details>
194
+
162
195
  ## Contributing
163
196
 
164
197
  See [CLAUDE.md](CLAUDE.md) for architecture and development setup.
@@ -170,3 +203,9 @@ By submitting a pull request, you agree to the [Contributor License Agreement](C
170
203
  [GPL-3.0](LICENSE)
171
204
 
172
205
  **Commercial licensing available** - [contact us](https://rustledger.github.io/#contact) for proprietary license options.
206
+
207
+ ## Funding
208
+
209
+ rustledger is free and open source. If you find it useful, consider supporting development:
210
+
211
+ [![Support on Liberapay](https://img.shields.io/badge/Support%20on-Liberapay-F6C915?logo=liberapay)](https://liberapay.com/rustledger)
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Rustledger Contributors"
6
6
  ],
7
7
  "description": "Beancount WebAssembly bindings for JavaScript/TypeScript",
8
- "version": "0.5.1",
8
+ "version": "0.6.0",
9
9
  "license": "GPL-3.0-only",
10
10
  "repository": {
11
11
  "type": "git",
Binary file