Tackler is fast (1), reliable bookkeeping engine with native GIT SCM support for plain text accounting, written in Rust.
cargo install --locked tackler # (2) tackler new demo tackler --config demo/conf/tackler.toml
This will produce balance and register reports for the demo journal.
Balance Report -------------- 0.00 17.50 Expenses 0.00 12.00 Expenses:Food 12.00 12.00 Expenses:Food:Fast-Food 0.00 5.50 Expenses:Sweets 2.50 2.50 Expenses:Sweets:Candy 3.00 3.00 Expenses:Sweets:Ice·Cream ===================== 17.50 Register Report --------------- ...
1) Tackler can process 120_000 - 250_000 transactions per second on modern laptop. See Performance for details.
2) If you don’t have Rust toolchain installed, get it from here.
Tackler-NG is in feature parity with and beyond of the old Scala code base. It’s basis of all Tackler development.
Note
|
Tackler-NG is tested with 408 tracked test vectors |
All Tackler CLI functionality is supported, including Tackler Journal Format, transaction storages (Filesystem, Git SCM), all reports (Balance, Balance Group, Register) and all exports (Equity, Identity).
Other notable features are:
-
Support for Commodities, Currencies and Shares
-
Market Value of Commodities and Shares, including different valuation (Mark-to-Market) methods:
-
Transaction Filters for powerful selectors of used accounting data
-
Real transaction timestamps up to nanosecond resolution and with timezone information
-
Accounting based on Geo Location and Transaction GIS Filters
See tackler --help
, Documentation and Tackler Configuration how to use tackler-ng.
You can install tackler binary by cargo:
cargo install --locked tackler
Or build it from the source.
The main
branch should build and pass all tests:
git clone --recurse-submodules https://github.com/tackler-ng/tackler
Then build the tackler binary:
cd tackler-ng # The main branch should build and pass all tests cargo build --release --locked --bin tackler # the binary is located at 'target/release/tackler'
See examples folder in the repository for full list of examples.
Audit example uses Git SCM as journal storage, and strict and audit modes are activated by configuration.
target/release/tackler --config examples/audit.toml
Audit test data has a branch with 100_000 transactions, this query will execute in few seconds:
target/release/tackler \ --config examples/audit.toml \ --input.git.ref txns-1E5 \ --accounts 'a:ay2016:am12'
Git Storage commit : cb56fdcdd2b56d41fc08cc5af4a3b410896f03b5 reference : txns-1E5 directory : txns suffix : .txn message : txns-1E5: 2016/12 Txn Set Checksum SHA-256 : 27060dc1ebde35bebd8f7af2fd9815bc9949558d3e3c85919813cd80748c99a7 Set size : 100000 ********************************************************************************** Account Selector Checksum SHA-256 : abbcd1800caab82df857441d734b728ca18850f08f9a1c96602ee740b970cae0 Balance Report -------------- -133433.00 -133433.00 a:ay2016:am12 ======================== -133433.00 ##################################################################################
See tackler --help
, Tackler configuration file, tackler examples and Tackler CLI documentation how to use the rusty version of tackler.
Developer’s Guides have technical information about Tackler-NG. For Tackler user manual, see the Tackler Documentation.
All contributions are valued and none is too small or insignificant.
See CONTRIBUTING for details how you could participate with Tackler-NG development.
Following people have helped or contributed to the development of Tackler-NG:
Byron, zamazan4ik, epage, BurntSushi and RagibHasin
Thank you!
If you find a security issue in Tackler-NG, please report it as outlined in the Security Policy.
Tackler-NG is licensed under the Apache License, version 2.0.