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 417 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 directly by cargo, even without cloning the repo:
# Latest released version cargo install --locked tackler # Latest development version cargo install --locked --git https://github.com/tackler-ng/tackler tackler
Or build it from the local source code.
The main
branch should build and pass
all tests all the time.
You have to clone tackler source code with git submodules, as tests vectors are located in a separate repository.
git clone --recurse-submodules https://github.com/tackler-ng/tackler
Then build the tackler binary - if you have just installed, building tackler is just:
just release-build
Tackler binary will be located at target/release/tackler
.
Or with plain cargo command:
cd tackler-ng # The main branch should build and pass all tests cargo build --release --locked --bin tackler
Again, the binary will be 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.