Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/e257-fi/tackler-ng
Fast, reliable bookkeeping engine with native GIT SCM support for plain text accounting
https://github.com/e257-fi/tackler-ng
accounting auditing git ledger plaintext plaintext-accounting rust
Last synced: 5 days ago
JSON representation
Fast, reliable bookkeeping engine with native GIT SCM support for plain text accounting
- Host: GitHub
- URL: https://github.com/e257-fi/tackler-ng
- Owner: e257-fi
- License: apache-2.0
- Created: 2023-04-07T06:30:04.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-29T20:38:55.000Z (12 days ago)
- Last Synced: 2025-01-29T21:28:16.745Z (12 days ago)
- Topics: accounting, auditing, git, ledger, plaintext, plaintext-accounting, rust
- Language: Rust
- Homepage: https://tackler.e257.fi/
- Size: 1.01 MB
- Stars: 61
- Watchers: 0
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.adoc
- Changelog: CHANGELOG.adoc
- Contributing: CONTRIBUTING.adoc
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
- trackawesomelist - e257-fi/tackler-ng (⭐61) - Fast, reliable bookkeeping engine with native GIT SCM support for plain text accounting [![CI Badge](https://github.com/e257-fi/tackler-ng/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/e257-fi/tackler-ng/blob/main/.github/workflows/ci.yml) (Recently Updated / [Who Wants to Be a Millionare](https://www.boardgamecapital.com/who-wants-to-be-a-millionaire-rules.htm))
- fucking-awesome-rust - e257-fi/tackler-ng - Fast, reliable bookkeeping engine with native GIT SCM support for plain text accounting [![CI Badge](https://github.com/e257-fi/tackler-ng/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/e257-fi/tackler-ng/blob/main/.github/workflows/ci.yml) (Applications / Finance)
- awesome-rust - e257-fi/tackler-ng - Fast, reliable bookkeeping engine with native GIT SCM support for plain text accounting [![CI Badge](https://github.com/e257-fi/tackler-ng/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/e257-fi/tackler-ng/blob/main/.github/workflows/ci.yml) (Applications / Finance)
README
image:https://github.com/e257-fi/tackler-ng/actions/workflows/ci.yml/badge.svg["ci status", link="https://github.com/e257-fi/tackler-ng/actions"]
image:https://img.shields.io/github/v/release/e257-fi/tackler-ng?include_prereleases&color=%230868da["Github Release", link="https://github.com/e257-fi/tackler-ng/releases"]
image:https://tackler.e257.fi/img/badge-crates.svg["crates.io: tackler", link="https://crates.io/crates/tackler"]
image:https://img.shields.io/badge/tackler-documentation-%23ffcb00["Tackler Docs", link="https://tackler.e257.fi/docs"]
image:https://img.shields.io/github/discussions/e257-fi/tackler-ng["GitHub Discussions", link="https://github.com/e257-fi/tackler-ng/discussions"]
image:https://tackler.e257.fi/img/badge-matrix.svg["matrix: tackler", link="https://matrix.to/#/#tackler:matrix.org"]= Tackler-NG
link:https://tackler.e257.fi/[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.50Register Report
---------------
...
----1) Tackler can process 120_000 - 250_000 transactions per second on modern laptop. See link:https://tackler.e257.fi/docs/performance/[Performance] for details.
2) If you don't have Rust toolchain installed, get it link:https://www.rust-lang.org/tools/install[from here].
== Project Status
Tackler-NG is basis of all Tackler development, and it's
in link:https://tackler.e257.fi/features/[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
link:https://tackler.e257.fi/docs/journal/format/[Tackler Journal Format],
transaction storages (link:https://tackler.e257.fi/docs/usage/#storage-selector[Filesystem],
link:https://tackler.e257.fi/docs/journal/git-storage/[Git SCM]),
all reports
(link:https://tackler.e257.fi/docs/report-balance/[Balance],
link:https://tackler.e257.fi/docs/report-balance-group/[Balance Group],
link:https://tackler.e257.fi/docs/report-register/[Register])
and all exports
(link:https://tackler.e257.fi/docs/export-equity/[Equity],
link:https://tackler.e257.fi/docs/export-equity/[Identity]).Other notable features are:
* Handling link:https://tackler.e257.fi/docs/commodities/[Commodities] and link:https://tackler.e257.fi/docs/currencies/[Shares]
* link:https://tackler.e257.fi/docs/txn-filters/[Transaction Filters] for powerfull selectors of accounting data
* Accounting based on link:https://tackler.e257.fi/docs/gis/txn-geo-location[Geo Location] and link:https://tackler.e257.fi/docs/gis/txn-geo-filters/[Transaction GIS Filters]See `tackler --help`, link:https://tackler.e257.fi/docs/[Documentation] and link:examples/tackler.toml[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/12Txn Set Checksum
SHA-256 : 27060dc1ebde35bebd8f7af2fd9815bc9949558d3e3c85919813cd80748c99a7
Set size : 100000**********************************************************************************
Account Selector Checksum
SHA-256 : abbcd1800caab82df857441d734b728ca18850f08f9a1c96602ee740b970cae0Balance Report
--------------
-133433.00 -133433.00 a:ay2016:am12
========================
-133433.00
##################################################################################
----See `tackler --help`, link:examples/tackler.toml[Tackler configuration] file, example link:docs/examples.adoc[commands] and link:tackler-cli/CRATES.md[Tackler CLI documentation] how to use the rusty version of tackler.
link:docs/devel/readme.adoc[Developer's Guides] have technical information about Tackler-NG. For the general information about Tackler, see the link:https://tackler.e257.fi/docs/[Tackler site].
== Credits
Special thanks to the Rust community for the all help and advice,
without forgetting Clippy.
link:https://github.com/GitoxideLabs/gitoxide[Gitoxide]
is one of the key components which made Tackler-NG possible - Thank you!See link:CREDITS.adoc[CREDITS] for full details.
== Contributing
All contributions are valued and none is too small or insignificant.
See link:CONTRIBUTING.adoc[CONTRIBUTING] for details how you could participate
with Tackler-NG development.Following people have helped or contributed to the development of Tackler-NG:
link:https://github.com/byron[Byron],
link:https://github.com/zamazan4ik[zamazan4ik],
link:https://github.com/epage/[epage],
link:https://github.com/BurntSushi[BurntSushi]Thank you!
== Security
If you find a security issue in Tackler-NG, please report it as outlined in
the link:./SECURITY.md[Security Policy].== License
Tackler-NG is licensed under the link:./LICENSE[Apache License, version 2.0].