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 has excellent performance, it can process 700_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 is in feature parity with and beyond of the old Scala code base. It’s basis of all Tackler development.
Note
|
Tackler is tested with 436 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
-
Plain dates are supported too
-
Also Civil date and time without zone is supported
-
-
Accounting based on Geo Location and Transaction GIS Filters
-
Optional JSON output format
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 set-1e5 \ --accounts 'a:ay2016:am12'
Git Storage reference : set-1e5 directory : txns extension : txn commit : 4648a2994b41ed341b544a148b3060fd2d267d79 author : tackler <accounting@example.com> date : 2016-12-31 17:41:24 +0000 subject : set-1e5: 2016-12-31 Txn Set Checksum SHA-256 : 2f4bc22df78502182aa27037d8d0f72462adb018be3e768399e0b803fa75baa7 set size : 100000 ********************************************************************************** Account Selector Checksum SHA-256 : abbcd1800caab82df857441d734b728ca18850f08f9a1c96602ee740b970cae0 selector : 'a:ay2016:am12' Balance Report -------------- -133402.00 a:ay2016:am12 ======================== -133402.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. 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 development.
Following people have helped or contributed to the development of Tackler:
Byron, zamazan4ik, epage, BurntSushi and RagibHasin
Thank you!
If you find a security issue in Tackler, please report it as outlined in the Security Policy.
Tackler is licensed under the Apache License, version 2.0.