Skip to content

Latest commit

 

History

History
186 lines (132 loc) · 6.39 KB

README.adoc

File metadata and controls

186 lines (132 loc) · 6.39 KB

ci status Github Release crates.io: tackler Tackler Docs GitHub Discussions matrix: tackler

Tackler-NG

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.

Project Status

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:

See tackler --help, Documentation and Tackler Configuration how to use tackler-ng.

How to build Tackler CLI application

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'

Simple example with Filesystem Journal

target/release/tackler --config examples/simple.toml

Complex example with Git Storage and Audit mode

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.

Credits

Special thanks to the Rust community for the all help and advice, without forgetting Clippy. Gitoxide is one of the key components which made Tackler-NG possible - Thank you!

See CREDITS for full details.

Contributing

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!

Security

If you find a security issue in Tackler-NG, please report it as outlined in the Security Policy.

License

Tackler-NG is licensed under the Apache License, version 2.0.