NDK Cache SQLite
SQLite cache adapter for NDK using better-sqlite3, compatible with Node.js environments.
Features
- Node.js Compatible: Uses better-sqlite3 for native Node.js SQLite support
- Schema Compatibility: Uses the same database schema as cache-sqlite-wasm for easy migration
- High Performance: Leverages better-sqlite3's synchronous API for optimal performance
- Full NDK Integration: Implements the complete NDKCacheAdapter interface
- TypeScript Support: Full TypeScript definitions included
Installation
npm install @nostr-dev-kit/cache-sqlite
yarn add @nostr-dev-kit/cache-sqlite
bun add @nostr-dev-kit/cache-sqlite
Usage
import NDK from '@nostr-dev-kit/ndk';
import { NDKCacheAdapterSqlite } from '@nostr-dev-kit/cache-sqlite';
const cache = new NDKCacheAdapterSqlite({
dbPath: './ndk-cache.db',
dbName: 'ndk-cache'
});
const ndk = new NDK({
cacheAdapter: cache,
});
await cache.initializeAsync(ndk);
await ndk.connect();
Configuration Options
interface NDKCacheAdapterSqliteOptions {
dbPath?: string;
dbName?: string;
}
Database Schema
The adapter uses the same schema as cache-sqlite-wasm:
events - Stores Nostr events
profiles - Stores user profiles
decrypted_events - Stores decrypted events
unpublished_events - Tracks unpublished events
event_tags - Indexes event tags for fast queries
relay_status - Tracks relay connection status
nutzap_monitor_state - Stores nutzap monitoring state
Compatibility
This package is designed to be a drop-in replacement for cache-sqlite-wasm in Node.js environments. The database schema is identical, allowing for easy migration between the two adapters.
Development
bun install
bun test
bun run build
License
MIT