Runtime-agnostic Hrana v2 HTTP server for SQLite that exposes any SQLite database (Cloudflare Durable Objects, libsql, better-sqlite3) via the libSQL remote protocol. Current stable version 0.1.0. Designed for connecting data explorers like Drizzle Studio and TablePlus to Durable Object storage or Node.js SQLite databases. Key differentiators: supports multiple backends (Durable Objects, libsql, custom drivers), includes Cloudflare Workers proxy for DO routing via namespace:secret auth, and provides both fetch-style and Node.js http handler adapters.
npm install libsqlproxyNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Sets up a local libsqlproxy server with an in-memory SQLite database, wrapped for Node.js HTTP, requiring authentication via Bearer token.
Use format 'my-durable-object-id:my-shared-secret' as the authToken when connecting via @libsql/client.
Ensure your Durable Object class stores the handler as `this.hranaHandler = createLibsqlHandler(durableObjectExecutor(this.ctx.storage))`.
If using a sync executor, ensure `executeSql` returns an object (not a Promise) and `execRaw` returns void (undefined).
Check that the `getStub` callback returns a valid Durable Object stub, and that the `namespace` extracted from authToken matches a valid DO ID.
Use `import Database from 'libsql'` (ESM) and ensure 'libsql' is installed. If using CJS, use dynamic import: `const { default: Database } = await import('libsql')`.Ensure TypeScript is configured with `moduleResolution: "node16"` or `"bundler"` and `skipLibCheck: false`. Also check that the package is installed correctly.
Pass an `auth.token` option to `createLibsqlNodeHandler` or `createLibsqlProxy` and ensure the client sends a valid `authToken` matching the expected secret.