#beancount #directive #clone #accounting #balance #decimal #transaction

bin+lib bean-rs

使用 Rust 实现的 beancount 克隆(一天之内...)

10 个版本

0.3.1 2024 年 4 月 29 日
0.3.0 2024 年 4 月 15 日
0.2.2 2024 年 4 月 9 日
0.1.6 2024 年 4 月 9 日
0.1.5 2024 年 1 月 24 日

530数据库接口

Download history 14/week @ 2024-04-18 145/week @ 2024-04-25 17/week @ 2024-05-02 1/week @ 2024-05-16 1/week @ 2024-05-23 1/week @ 2024-06-27 20/week @ 2024-07-04 303/week @ 2024-07-25 40/week @ 2024-08-01

每月 343 次下载

MIT 许可证

58KB
1.5K SLoC

bean-rs

基本的 beancount 克隆(一天之内...)在 Rust 中!

仍然处于非常初级的阶段,无法完成大多数必要的功能。

Python 绑定正在使用 PyO3 进行开发;

计划功能

  • 使用 pest 解析 beancount 文件
  • 更严格的交易关键字
  • 传播行号以进行调试
  • 计算账户余额
  • 使用适当的 Decimal 处理
  • 将交易与 open/close 指令进行验证
  • 验证 balance 指令
  • 填充语句
  • 使用多货币打开/关闭
  • 添加 Python 绑定
  • 支持 includes
  • 想出一个更搞笑的名字
  • 货币转换
  • 价格/成本和 FIFO

与 beancount 的(故意)不同之处

  • 帖子不能省略货币

从 Rust 使用

安装

cargo install bean-rs

运行

$ bean-rs

Usage: bean-rs <COMMAND>

Commands:
  balance  Display account balances
  check    Check for errors and quit
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

计算余额

bean-rs balance example.bean

从 Python 使用

更多内容即将推出...

import bean_rs
ledger = bean_rs.py_load("example.bean")
print(ledger.opts)

开发

构建

make build

测试

make test

依赖项

~8–14MB
~178K SLoC