@rustledger/wasm 0.5.2 → 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 +46 -7
- package/package.json +1 -1
- package/rustledger_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
Parse and validate your ledger faster than Python beancount.
|
|
8
8
|
|
|
9
9
|
[](https://github.com/rustledger/rustledger/actions/workflows/ci.yml)
|
|
10
|
+
[](https://github.com/rustledger/rustledger/actions/workflows/compat.yml)
|
|
10
11
|
[](https://github.com/rustledger/rustledger/releases)
|
|
11
12
|
[](LICENSE)
|
|
13
|
+
[](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
|
-
| **
|
|
22
|
-
| **
|
|
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`
|
|
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
|
+
[](https://liberapay.com/rustledger)
|
package/package.json
CHANGED
package/rustledger_wasm_bg.wasm
CHANGED
|
Binary file
|