Home

Awesome

<p align="center"> <img src="https://raw.githubusercontent.com/firstbatchxyz/hollowdb/master/logo.svg" alt="logo" width="142"> </p> <p align="center"> <h1 align="center"> HollowDB </h1> <p align="center"> <i>HollowDB is a decentralized privacy-preserving key-value database on Arweave network, powered by Warp Contracts.</i> </p> </p> <p align="center"> <a href="https://opensource.org/licenses/MIT" target="_blank"> <img alt="License: MIT" src="https://img.shields.io/badge/license-MIT-7CB9E8.svg"> </a> <a href="https://www.npmjs.com/package/hollowdb" target="_blank"> <img alt="NPM" src="https://img.shields.io/npm/v/hollowdb?logo=npm&color=CB3837"> </a> <a href="https://docs.hollowdb.xyz" target="_blank"> <img alt="License: MIT" src="https://img.shields.io/badge/docs-hollowdb-3884FF.svg?logo=gitbook"> </a> <a href="./.github/workflows/test.yml" target="_blank"> <img alt="Workflow: Tests" src="https://github.com/firstbatchxyz/hollowdb/actions/workflows/test.yml/badge.svg?branch=master"> </a> <a href="https://discord.gg/2wuU9ym6fq" target="_blank"> <img alt="Discord" src="https://dcbadge.vercel.app/api/server/2wuU9ym6fq?style=flat"> </a> </p>

Installation

To install HollowDB:

yarn add hollowdb     # yarn
npm install hollowdb  # npm
pnpm add hollowdb     # pnpm

Depending on your use-cases, we have several optional dependencies:

Usage

You can read the full documentation of HollowDB at https://docs.hollowdb.xyz.

[!NOTE]

If you are interested in customizing the smart contract of HollowDB and extending its SDKs, refer to this README.

Examples

Check out the examples folder for a few examples of HollowDB usage:

Testing

You can run all tests via:

pnpm test

Tests operate on a local Arweave instance using arlocal. They will run for all cache types (LMDB, Redis, LevelDB). You will need to have a Redis server running for some of the tests to pass, the URL shall be specified here.

Styling

You can check the formatting of the code or lint everything with the following commands:

pnpm format # prettier
pnpm lint   # eslint