CLB - Cardano Emulator that works
Welcome to CLB (pronounced /klʌb/)!
CLB (opens in a new tab) (stands for Cardano Ledger Backend) is a two-in-one Cardano emulator which can be used in two modes of operation depending on your needs:
- as a Haskell library
- as a cardano-node emualator
These two modes have different applications and behavior, see variants of use. Check out the getting started page to start with CLB.
The core CLB library has been developed with the following ideas in mind:
- Being fully compatible with the
cardano-ledger
codebase. - Minimal dependency set. CLB depends only on
plutus
andcardano-ledger
. Noplutus-apps
orcardano-node
or Ouroboros. - Works for Plutus V1, Plutus V2, and Plutus V3.
- Support for Babbage and Conway eras (one at a time though).
- Realistic usage estimation of resources even when they exceed limits.
- Using pure state and being blazingly fast to facilitate property-based testing.
Maintenance
CLB is maintained by MLabs (opens in a new tab) as a part of its core-tools endeavor. Please submit an issue (opens in a new tab) or ask a question (opens in a new tab) on GitHub. CLB is an open-source project, so PRs are highly welcomed as well.
Adoption
Here is the list of projects that use CLB or its parts:
- Atlas (opens in a new tab), the modern PAB by GeniusYield (opens in a new tab) and others uses CLB in lieu of decommissioned PSM (opens in a new tab) library.
- CTL (opens in a new tab),
a Purescript-based set of tools for building dApps for browsers
developed by MLabs (opens in a new tab) provides a way to use CLB
instead of
cardano-node
to speed up private network tests. - CEM Script (opens in a new tab), a high-level Cardano SDK for building dApps from state-machine-like definition by MLabs (opens in a new tab) uses bare CLB API to verify their models.
If you use CLB and your project is not on the list, please give us a shout (opens in a new tab).
History
In case you are interested in the CLB's story we recommend reading this report (opens in a new tab) that goes to great lengths to present the whole story, particularly:
- How the predecessor of CLB, PSM library was born (opens in a new tab).
- What PSM looked like when CLB was incepted (opens in a new tab).
- CLB as the next-gen of PSM (opens in a new tab).
Credits
CLB was funded by Catalyst Fund10 proposal (opens in a new tab) and developed by MLabs (opens in a new tab)' team:
- George Flerovsky
- Gregory Gerasev
- Ilia Rodionov
- Mazen Khaddaj
- Rajdeep Maity