ToolDb is designed as open, permissionless infrastructure.
It enables peer-to-peer data exchange without centralized custody, accounts, or trust anchors. Identity is cryptographic, data ownership is local-first, and connectivity emerges from the network itself.
This project is intentionally permissive. Commercial use, private deployments, and derivative systems are welcome. ontributions, attribution, and community participation are very appreciated but not required.
ToolDb favors adoption, interoperability, and resilience
|
🔐 Cryptographically Secure
🌐 Fully Decentralized
⚡ Real-time Updates
|
📴 Offline First
📦 Key-Value Storage
🔄 Built-in CRDTs
|
npm install tool-dbimport { ToolDb, ToolDbWebrtc } from "tool-db";
const db = new ToolDb({
networkAdapter: ToolDbWebrtc,
});
// Put and get data
await db.putData("foo-key", "bar");
const value = await db.getData("foo-key");
// Subscribe to real-time updates
db.subscribeData("foo-key", (data) => {
console.log("Data updated:", data);
});📖 Read the full documentation →
| Package | Description |
|---|---|
tool-db |
Core database functionality and API |
ecdsa-user |
ECDSA-based user authentication and cryptographic operations |
web3-user |
Web3/Ethereum wallet-based user authentication |
leveldb-store |
LevelDB storage adapter for Node.js |
indexeddb-store |
IndexedDB storage adapter for browsers |
redis-store |
Redis storage adapter for server deployments |
websocket-network |
WebSocket network adapter |
webrtc-network |
WebRTC network adapter for browser-to-browser connections |
hybrid-network |
Hybrid network adapter combining multiple transports |
npm run demo # Run the demo
npm test # Run all testsApache-2.0 © Manuel Etchegaray
📖 Read the full documentation →
CRDTs • User Authentication • Namespaces • Network Adapters • And much more!