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.
Built for financial developers who need precision, not complexity.Conçu pour les développeurs financiers qui ont besoin de précision.
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.
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.
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.
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.
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.
Execute scripts, initialize storage, and manage configuration directly from the terminal.Exécutez des scripts et gérez la configuration depuis le terminal.
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 →transfer [DZD.2 10000] ( from @world to @banque:reserve )
transfer [DZD.2 5000] ( from @client:ameziane to { 90/100 to @vendeur:yanis 10/100 to @plateforme:commission } )
var $montant: monetary var $dest: account transfer $montant ( from @world to $dest )
All operations available via a simple HTTP API.Toutes les opérations via une API HTTP simple.
| MethodMéthode | Endpoint | DescriptionDescription |
|---|---|---|
| GET | /:ledger/stats | Ledger statisticsStatistiques du registre |
| GET | /:ledger/transactions | List transactionsLister les transactions |
| POST | /:ledger/transactions | Create a manual transactionCréer une transaction manuelle |
| POST | /:ledger/script | Execute a FaRl scriptExécuter un script FaRl |
| GET | /:ledger/accounts | List accountsLister les comptes |
| GET | /:ledger/accounts/:address | Account balance and infoSolde et infos d'un compte |
Build from source or download the binary from the releases page.Compilez depuis les sources ou téléchargez le binaire.
Initialize the config file. SQLite by default, PostgreSQL for production.Initialisez le fichier de configuration. SQLite par défaut.
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}