corren
v1.0.0-alpha

Programmable financial ledger Registre financier programmable

Corren provides atomic multi-posting transactions, programmable in FaRl — a dedicated language for money movements. Build financial apps safely and reliably. Corren offre des transactions multi-postings atomiques, programmables en FaRl — un langage dédié aux mouvements de fonds.

Stop
Fighting
Your
Ledger
Arrêtez
de lutter
contre votre
registre
vente.farl No errorsAucune erreur
1
2
3
4
5
6
7
8
9
10
# Payment with revenue split# Paiement avec partage de revenus transfer [DZD.2 5000] ( from @client:ameziane to { 90/100 to @vendeur:yanis 10/100 to @plateforme:commission } )
$ corren exec quickstart vente.farl 200 {"ok":true}
Atomic TransactionsFaRl Language Multi-ledgerSQLite & PostgreSQL REST APIOpen SourceDZD Native Atomic TransactionsFaRl Language Multi-ledgerSQLite & PostgreSQL REST APIOpen SourceDZD Native
Ledgers per instanceRegistres par instance
2
Storage driversMoteurs de stockage
100%
Atomic transactionsTransactions atomiques
DZD
Native asset supportSupport natif du DZD
01

Why CorrenPourquoi Corren

Built for financial developers who need precision, not complexity.Conçu pour les développeurs financiers qui ont besoin de précision.

AtomicAtomicité01

Multi-posting transactionsTransactions multi-postings

Every transaction is all-or-nothing. No partial states, no inconsistent balances. Ever.Chaque transaction est tout ou rien. Aucun état partiel, aucune balance incohérente.

FaRl02

Programmable scriptsScripts programmables

FaRl is a dedicated language for money movements. Express complex flows in a few readable lines.FaRl est un langage dédié aux mouvements de fonds. Exprimez des flux complexes en quelques lignes.

StorageStockage03

SQLite & PostgreSQL

Start with SQLite locally, scale to PostgreSQL in production. Zero code changes required.Démarrez avec SQLite localement, passez à PostgreSQL en production. Zéro changement.

REST API04

Simple HTTP APIAPI HTTP simple

A clean REST API to submit scripts, query balances, and list transactions from any language.Une API HTTP propre pour soumettre des scripts et consulter les soldes depuis n'importe quel langage.

Multi-ledgerMulti-registres05

Isolated ledgersRegistres isolés

Run multiple independent ledgers in a single instance. Each with its own accounts and history.Plusieurs registres indépendants dans une seule instance. Chacun avec ses propres comptes.

CLI06

Powerful CLICLI puissant

Execute scripts, initialize storage, and manage configuration directly from the terminal.Exécutez des scripts et gérez la configuration depuis le terminal.

Build FastTrack Every Cent Trust Your LedgerWrite FaRl Deploy AnywhereBuild Fast Track Every CentTrust Your Ledger Write FaRlDeploy Anywhere
02

The FaRl languageLe langage FaRl

FaRl (Financial aRrangement Language) is the scripting language built into Corren. Designed to be readable, safe, and expressive for financial use cases.FaRl (Financial aRrangement Language) est le langage de script intégré à Corren. Conçu pour être lisible, sûr et expressif.

Every transfer is validated before execution. Insufficient balances and allocation errors are caught at compile time — not at runtime.Chaque transfer est validé avant exécution. Les erreurs sont détectées à la compilation.

@world is a special account representing money creation — like a central bank. It has no balance limit.@world est un compte spécial représentant la création monétaire — sans limite de solde.

Read the full docs →Lire la documentation →
Simple transferTransfer simple
transfer [DZD.2 10000] (
  from @world
  to @banque:reserve
)
Revenue splittingPartage de revenus
transfer [DZD.2 5000] (
  from @client:ameziane
  to {
    90/100 to @vendeur:yanis
    10/100 to @plateforme:commission
  }
)
With variablesAvec variables
var $montant: monetary
var $dest: account
transfer $montant (
  from @world
  to $dest
)
03

REST APIAPI REST

All operations available via a simple HTTP API.Toutes les opérations via une API HTTP simple.

MethodMéthodeEndpointDescriptionDescription
GET/:ledger/statsLedger statisticsStatistiques du registre
GET/:ledger/transactionsList transactionsLister les transactions
POST/:ledger/transactionsCreate a manual transactionCréer une transaction manuelle
POST/:ledger/scriptExecute a FaRl scriptExécuter un script FaRl
GET/:ledger/accountsList accountsLister les comptes
GET/:ledger/accounts/:addressAccount balance and infoSolde et infos d'un compte
04

Get startedDémarrer

1
InstallInstaller

Build from source or download the binary from the releases page.Compilez depuis les sources ou téléchargez le binaire.

2
ConfigureConfigurer

Initialize the config file. SQLite by default, PostgreSQL for production.Initialisez le fichier de configuration. SQLite par défaut.

3
RunLancer

Start the server and execute your first FaRl script.Démarrez le serveur et exécutez votre premier script FaRl.

# Build from source
git clone https://github.com/amezianechayer/corren
cd corren && go build -o corren .
sudo mv corren /usr/local/bin/

# Initialize and start
corren config init
corren server start

# Execute your first script
corren exec quickstart script.farl
200 {"ok":true}