Quickstart
To use tackler, you will need tackler binary and an accounting journal.
cargo install --locked tackler
tackler new journal
tackler --config journal/conf/tackler.toml
That’s it, you are all done!
You are now ready to start your accounting journey. Feel free to add, modify or
delete transaction files under the journal/txns
directory. After all, it’s
your journal. Tackler will pick up automatically all files ending as .txn
under that directory.
See Tackler Journal and Command Line Reference how to get started with tackler.
Longer version of the same story
You need Rust toolchain to build tackler binary.
cargo install --locked 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 journal
This will create a new bookkeeping setup, with default configuration journal/conf
and example transactions in journal/txns
(feel free to modify or delete these transaction files).
The next step is to run default reports for the journal:
tackler \
--config 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 tackler.toml, accounts.toml, commodities.toml and tags.toml for full configuration options. |
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 one hundred thousand transactions.
git clone --recurse-submodules https://github.com/tackler-ng/tackler
cd tackler
Simple example
The simple.toml example uses filesystem based storage backend, no account name validations, no auditing features.
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.
Output
Git Storage
reference : set-1e1
directory : txns
extension : txn
commit : ed6e4b10de2daea8d143569c473d14a9b09c3270
author : tackler <accounting@example.com>
date : 2016-11-25 09:36:00 +0000
subject : set-1e1: 2016-11-25
Txn Set Checksum
SHA-256 : 4a0eb2f8836447a025030a87136c047b4a737031162f593cb00f390c6ba113a3
set size : 10
**********************************************************************************
Account Selector Checksum
SHA-256 : df4714ff3f5bd031a8256df95863a8085f740b436f1b47febb45c9eb9aaa9e9e
selector : 'a:.*'
Balance Report
--------------
-1.00 a:ay2016:am01
-6.00 a:ay2016:am02
-14.00 a:ay2016:am03
-19.00 a:ay2016:am04
-26.00 a:ay2016:am05
-2.00 a:ay2016:am07
-7.00 a:ay2016:am08
-13.00 a:ay2016:am09
-19.00 a:ay2016:am10
-25.00 a:ay2016:am11
=====================
-132.00
##################################################################################
Journal with one hundred thousand transactions
The audit repository contains a branch which has set of 100_000 transactions,
and it’s named as set-1e5
.
The following command will run reports in the audit mode with the journal data
in branch set-1e5
. Only accounts starting as a:ay2016:am1
are selected
into reports.
Command
tackler \
--config examples/audit.toml \
--input.git.ref set-1e5 \
--accounts "a:ay2016:am1.*"
Output
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 : 49bfb37038bd82c1f23eeb3ea018a721b1f9503732493b7a6d7c96f187bc1505
selector : 'a:ay2016:am1.*'
Balance Report
--------------
-135619.00 a:ay2016:am10
-127126.00 a:ay2016:am11
-133402.00 a:ay2016:am12
========================
-396147.00
##################################################################################