Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/formancehq/ledger
A Programmable Core Ledger
https://github.com/formancehq/ledger
ledger
Last synced: about 2 months ago
JSON representation
A Programmable Core Ledger
- Host: GitHub
- URL: https://github.com/formancehq/ledger
- Owner: formancehq
- License: mit
- Created: 2021-05-28T09:13:03.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-07T22:40:13.000Z (5 months ago)
- Last Synced: 2024-05-22T07:53:37.416Z (4 months ago)
- Topics: ledger
- Language: Go
- Homepage: https://formance.com
- Size: 48.9 MB
- Stars: 830
- Watchers: 19
- Forks: 94
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Formance Ledger [![test](https://github.com/formancehq/ledger/actions/workflows/main.yml/badge.svg)](https://github.com/formancehq/ledger/actions/workflows/main.yml) [![goreportcard](https://goreportcard.com/badge/github.com/formancehq/ledger)](https://goreportcard.com/report/github.com/formancehq/ledger) [![slack](https://img.shields.io/badge/slack-formance-brightgreen.svg?logo=slack)](https://bit.ly/formance-slack) [![codecov](https://codecov.io/gh/formancehq/ledger/branch/main/graph/badge.svg?token=3PUKLWIKX3)](https://codecov.io/gh/formancehq/ledger)
---Formance Ledger is a programmable financial ledger, developed as part of the [Formance Stack](https://github.com/formancehq/stack). It comes with atomic, multi-postings transactions and is programmable in [Numscript](doc:machine-instructions), a built-in DSL dedicated to modelling money movements. It will shine in apps that require complex, money-moving code, e.g:
* E-commerce with complex payments flows, payments splitting, such as marketplaces
* Company-issued currencies systems, e.g. Twitch Bits
* In-game currencies, inventories and trading systems, e.g. Fortnite V-Bucks
* Payment gateways using non-standard assets, e.g. learning credits
* Local currencies and complementary finance# Getting started
Formance Ledger works as a standalone binary, the latest of which can be downloaded from the [releases page](https://github.com/formancehq/ledger/releases). You can move the binary to any executable path, such as to `/usr/local/bin`. Installations using brew, apt, yum or docker are also [available](https://docs.formance.com/docs/installation-1).
```SHELL
ledger server start
# Submit a first transaction
echo "
send [USD/2 599] (
source = @world
destination = @payments:001
)send [USD/2 599] (
source = @payments:001
destination = @rides:0234
)send [USD/2 599] (
source = @rides:0234
destination = {
85/100 to @drivers:042
15/100 to @platform:fees
}
)
" > example.numledger exec quickstart example.num
# Get the balances of drivers:042
curl -X GET http://localhost:3068/quickstart/accounts/drivers:042# List transactions
curl -X GET http://localhost:3068/quickstart/transactions
```# Documentation
You can find the complete Numary documentation at [docs.formance.com](https://docs.formance.com)
# Community
If you need help, want to show us what you built or just hang out and chat about ledgers you are more than welcome on our [Slack](https://bit.ly/formance-slack) - looking forward to see you there!
# How to contribute
Want to contribute to the project? Please read the [CONTRIBUTING.md](https://github.com/formancehq/ledger/blob/main/CONTRIBUTING.md) file.
We are using [Task](https://taskfile.dev) to easily lint or test the project locally. You can install it with:
```SHELL
go install github.com/go-task/task/v3/cmd/task@latest
```
Then you can run `task` to run both the linters and the tests. You will find other tasks in the [Taskfile](https://github.com/formancehq/ledger/blob/main/Taskfile.yaml).# Contributors β¨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Alix Bott
π»
Maxence Maireaux
π π¦ π»
Henry Jackson
π»
Matias Insaurralde
π» π
David barinas
π»
David Jimenez
π»
ClΓ©ment SalaΓΌn
π€
Karmanyaah Malhotra
π
Antoine Gelloz
π»
jdupas22
π»
Edward Poot
π»
Nico Gallinal
π
Ragot Geoffrey
π»
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!