Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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.num

ledger 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!