Skip to content

Fast, reliable bookkeeping engine with native GIT SCM support for plain text accounting

License

Notifications You must be signed in to change notification settings

e257-fi/tackler-ng

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Tackler-NG

Tackler is fast, reliable bookkeeping engine with native GIT SCM support for plain text accounting written in rust. Tackler-NG is rusty version of Tackler.

Project Status

The rusty Tackler-NG is in feature parity with the old scala based Tackler CLI, and this will be the basis of all future Tackler development.

Note

Tackler-NG is tested with 284 of tackler’s 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

To build rusty Tackler, you will need git and Rust installed on your environment.

If you don’t have Rust, install it, e.g. by running:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Then get the source code and test vectors:

git clone --recurse-submodules https://github.com/e257-fi/tackler-ng

And 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. v24.12.1
git checkout v24.12.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

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.

Security

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

License

Copyright 2016-2024 E257.FI Contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.