Omar Desogus 35b6ff178f docs: add FAQs
Former-commit-id: cbe2d981c2a763a0c59c0d6ff25d89dbe285f3ff [formerly 1d421722f7536e8e877157b2e40d619cfba638ec] [formerly be356d53087a9c2956ac06a78833653d0baf65d0 [formerly fec9d9083f]]
Former-commit-id: 1347ead43d3cf007444c0093a253e0ee47b232da [formerly 999381848830788aabbdfe1b83b66dde9c7262a6]
Former-commit-id: a95fc86d132c67683e2669f85c664795e8d87043
2022-01-20 13:10:26 +01:00
2022-01-18 18:51:00 +01:00
2022-01-20 01:45:24 +01:00
2021-10-19 00:06:09 +02:00
2022-01-18 22:16:33 +01:00
2022-01-17 10:27:50 +01:00
2022-01-20 13:10:26 +01:00
2022-01-19 15:25:21 +01:00

🧰 ZK-kit

A monorepo of reusable JS libraries for zero-knowledge technologies.

Github license GitHub Workflow test Linter eslint Code style prettier Lerna

ZK-kit is a set of NPM modules (algorithms or utility functions) that can be reused in different projects and zero-knowledge protocols, making it easier for developers to access ready-to-use and tested libraries for common tasks.

♚ Simplified package management with Lerna (yarn, yarn build, yarn publish:fp)
Conventional Commits for adding human and machine readable meaning to commit messages (yarn commit)
Jest tests & common test coverage for all packages (yarn test)
ESLint & Prettier to keep the code neat and well organized (yarn prettier & yarn lint)
♝ Simple benchmarking framework for JavaScript/TypeScript libraries with Benny (yarn benchmark)


📦 Packages

Package Version Downloads Size
@zk-kit/identity NPM version Downloads npm bundle size (scoped)
@zk-kit/protocols NPM version Downloads npm bundle size (scoped)
@zk-kit/incremental-merkle-tree NPM version Downloads npm bundle size (scoped)
@zk-kit/sparse-merkle-tree NPM version Downloads npm bundle size (scoped)

🛠 Install

Clone this repository and install the dependencies:

$ git clone https://github.com/appliedzkp/zk-kit.git
$ cd zk-kit && yarn

📜 Usage

$ yarn lint # Syntax check with ESLint (yarn lint:fix to fix errors).
$ yarn prettier # Syntax check with Prettier (yarn prettier:fix to fix errors).
$ yarn commit # Interactive Commitizen commit.
$ yarn test # Test all packages (with common coverage).
$ yarn build # Create a JS build for each package.
$ yarn publish:fp # Publish packages on npm.

FAQ

I have a library that could be reused in other projects. How can I integrate it on ZK-kit?

ZK-kit provides a set of pre-configured development tools. All you have to deal with is your own code, testing and documentation. To create a package follow these steps:

  1. Fork this repository and clone it (or simply clone it directly if you are a collaborator),
  2. Copy one of our current libraries and update the README.md and package.json files with your package name:
cd zk-kit
cp -r packages/sparse-merkle-tree packages/my-package
cd packages/my-package && rm -fr node_modules dist
grep -r -l "sparse-merkle-tree" . | xargs sed -i 's/sparse-merkle-tree/my-package/'
# Update the remaining descriptions/usage section, and write your code in the src & tests folder!

How can I test and publish my library?

ZK-kit provides two commands: yarn test and yarn publish:fp. Both must be run from the root folder. yarn test will test all packages in the monorepo, including yours using the files inside your packages/my-package/tests folder. yarn publish:fp can only be run by those who own the NPM token of the ZK-kit organization. They will then have to publish the package. This task will be automated in the future.

Description
No description provided
Readme MIT 49 MiB
Languages
TypeScript 95.5%
TeX 4.4%