@kimlikdao/lib
v0.0.7
Published
KimlikDAO TypeScript library
Readme
@kimlikdao/lib is a repository containing TypeScript modules essential to KimlikDAO projects.
Both our js and ts modules are fully typed using ts type expressions and compiled using kdts, our
ts/js compiler with type aware optimizations.
🗂️ Features
Highlights
🗝️ crypto: Cryptographic functions and libraries
arfCurve: An efficient Arf Curve ($y^2 = x^3 + b$) class factoryweierstrassCurve: A constant time Weierstrass Curve ($y^2 = x^3 + ax + b$) implementationwesolowski: Our Wesolowski VDF implementation
🪪 did: Definitions of DID and KPass by KimlikDAO
🪁 kastro: Our compile-time focused web-framework
- React-like .tsx components at zero runtime cost
- Import css, fonts or images using es6 imports and receive an asset component
Other goodies
🫙 container: Cryptographic containers such as Merkle Trees
🧬 crosschain: Definitions and structures valid across all blockchains
💎 ethereum: Tools for interacting with Ethereum nodes
🪶 mina: Tools for working with Mina dApps and nodes.
📡 protocol: KimlikDAO protocol definitions and node interfaces
🧰 util: Conversion tools and external definitions
👩💻 Development
git clone https://github.com/KimlikDAO/lib
cd lib
bun i
bun add -g @kimlikdao/kdtsThese commands will clone the repository into your local development environment and download the packages necessary for the repository to function. If you don't already have bun installed, you can install it by following the official guide.
🧪 Tests
The tests can be run in two different modes:
- Uncompiled:
We use
bun's test runner, which has a jest-like interface.bun test - Compiled (using
kdts): We also run the same tests after compiling them withkdtsfirst:
Note thatkdts testkdtsmakes aggressive optimizations using the provided type information. Running tests in compiled mode is crucial, as incorrect type annotations can lead to functionally incorrect output. There is also a fast build mode, which doesn't do typechecking and produces larger outputskdts test --fast
To run tests in a specific directory, say crypto, you can also do
bun test crypto # uncompiled
kdts test crypto # compiled, --fast param available⏱️ Benchmarks
You can run a single benchmark directly
kdts bench crypto/bench/arfCurve/ladder.bench.ts # --fast param availableor compile all of them and benchmark the compiled modules:
kdts benchWhen run, output will look like this:


