Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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
# or
yarn add @nostr-dev-kit/cache-sqlite
# or
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', // Optional: custom database path
  dbName: 'ndk-cache'       // Optional: database name (used if dbPath not provided)
});

const ndk = new NDK({
  cacheAdapter: cache,
  // ... other NDK options
});

// Initialize the cache adapter
await cache.initializeAsync(ndk);
await ndk.connect();

Configuration Options

interface NDKCacheAdapterSqliteOptions {
  dbPath?: string;  // Custom path to SQLite database file
  dbName?: string;  // Database name (default: 'ndk-cache')
}

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

# Install dependencies
bun install

# Run tests
bun test

# Build the package
bun run build

License

MIT