Quickstart
With Tackler-NG version v25.1.1 or higher, run:
cargo install tackler
tackler new journal
tackler --config journal/conf/tackler.toml
Longer version of the same story
You need Rust toolchain to build tackler binary.
cargo install tackler
This will build and install tackler so that’s available on your PATH
environment variable. Assuming that you’ve followed default
Rust toolchain installation. See Installation Manual for full instructions. You can uninstall it by running cargo uninstall tackler
.
Creating a journal
Once you have installed tackler, create default journal setup with:
tackler new my_journal
This will create a new bookkeeping setup, with default configuration my_journal/conf
and example transactions in my_journal/txns
(feel free to modify or delete these transaction files).
The next step is to run default reports for the journal:
tackler --config my_journal/conf/tackler.toml
This will run Balance and Register reports by default. You can select which reports to run by using --reports
option, see tackler --reports
for more information.
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 --------------- ...
See Journal Format, tackler.toml, accounts.toml, commodities.toml and tags.toml for full documentation. |
Strict Mode
Tackler has a strict mode, which validates account names, commodity names and tags. This is useful for ensuring that all transaction data is correctly entered and that the reports are accurate. To enable strict mode, set kernel.strict = true
in the tackler.toml
configuration file. You can enable strict mode with the default journal.
Journal examples and source code
Tackler repository contains several example journals, which you can use to play and test tackler further: to test git integration, running tackler in audit mode, or playing with demo setup of 100_000 transactions.
git clone --recurse-submodules https://github.com/e257-fi/tackler-ng
cd tackler-ng
Simple example
The simple.toml example uses filesystem based storage backend, no account name validations, no auditing features.
Command
tackler --config examples/simple.toml
Output
Balance Report -------------- 0.00 12.00 Expenses:Food 12.00 12.00 Expenses:Food:Groceries 0.00 3.32 Expenses:Sweets 2.12 2.12 Expenses:Sweets:Ice·cream 1.20 1.20 Expenses:Sweets:Salmiakki ===================== 15.32
Let’s play for real - Git storage and Audit mode
The audit.toml example uses a bare git repository as transaction storage, and also strict and audit mode is activated by configuration. This means that all accounts, commodity names and tags are validated. The triplet of git commit id, Txn Set Checksum and Account Selector Checksum provides an auditable (cryptographic) proof of transactions used by reports.
Command
tackler --config examples/audit.toml
Output
Git Storage
commit : 4aa4e9797501c1aefc92f32dff30ab462dae5545
reference : txns-1E1
directory : txns
suffix : .txn
message : txns-1E1: 2016/12
Txn Set Checksum
SHA-256 : 9b29071e1bf228cfbd31ca2b8e7263212e4b86e51cfee1e8002c9b795ab03f76
Set size : 10
**********************************************************************************
Account Selector Checksum
SHA-256 : 19d31a48bf9a8604a1128ccfd281511f961c5469748a97897a21fc0fa2a5f519
Balance Report
--------------
0.00 -161.00 a:ay2016
-6.00 -6.00 a:ay2016:am02
-14.00 -14.00 a:ay2016:am03
-19.00 -19.00 a:ay2016:am04
-26.00 -26.00 a:ay2016:am05
-1.00 -1.00 a:ay2016:am07
-7.00 -7.00 a:ay2016:am08
-13.00 -13.00 a:ay2016:am09
-19.00 -19.00 a:ay2016:am10
-25.00 -25.00 a:ay2016:am11
-31.00 -31.00 a:ay2016:am12
=====================
-161.00
##################################################################################
Playing with 100_000 transactions
The audit repository contains a branch which has set of 100_000 transactions, and it’s named as txns-1E5
.
The following command will run the audit mode for the transactions in the branch txns-1E5
and select only accounts starting with a:ay2016:am1
, that’s accounts for year 2016, months 10, 11 and 12.
Command
tackler \
--config examples/audit.toml \
--input.git.ref txns-1E5 \
--accounts "a:ay2016:am1.*"
Output
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 : 49bfb37038bd82c1f23eeb3ea018a721b1f9503732493b7a6d7c96f187bc1505
Balance Report
--------------
-135619.00 -135619.00 a:ay2016:am10
-127126.00 -127126.00 a:ay2016:am11
-133433.00 -133433.00 a:ay2016:am12
========================
-396178.00
##################################################################################