Tackler is fast (1), reliable bookkeeping engine with native GIT SCM support for plain text accounting, written in Rust.
cargo install tackler 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 basis of all Tackler development, and it’s in feature parity and beyond of the old scala code base.
Note
|
Tackler-NG is tested with 310 tracked test vectors at the moment |
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:
-
Handling Commodities and Shares
-
Transaction Filters for powerfull selectors of accounting data
-
Accounting based on Geo Location and Transaction GIS Filters
See tackler --help
, Documentation and Tackler Configuration how to use tackler-ng.
Get the source code and test cases to play around and for building main
:
git clone --recurse-submodules https://github.com/e257-fi/tackler-ng
Then build the tackler binary:
cd tackler-ng # The main branch should build and pass all tests. # To build a release, check relased versions: git tag -l # Get the release, e.g. v25.01.1 git checkout v25.01.1 # Build tackler cargo build --release --locked --bin tackler # the binary is located at 'target/release/tackler'
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, example commands and Tackler CLI documentation how to use the rusty version of tackler.
Developer’s Guides have technical information about Tackler-NG. For the general information about Tackler, see the Tackler site.
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:
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.