Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .changeset/warm-rooms-cheer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
"@voltagent/libsql": minor
---

Add Edge/Cloudflare Workers support for @voltagent/libsql

- New `@voltagent/libsql/edge` export for edge runtimes
- Refactored adapters into core classes with dependency injection
- Edge adapters use `@libsql/client/web` for fetch-based transport
- Core uses DataView/ArrayBuffer for cross-platform compatibility
- Node.js adapters override with Buffer for better performance

Usage:

```typescript
import { LibSQLMemoryAdapter } from "@voltagent/libsql/edge";

const adapter = new LibSQLMemoryAdapter({
url: "libsql://your-db.turso.io",
authToken: "your-token",
});
```
10 changes: 10 additions & 0 deletions packages/libsql/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,16 @@
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
}
},
"./edge": {
"import": {
"types": "./dist/edge.d.mts",
"default": "./dist/edge.mjs"
},
"require": {
"types": "./dist/edge.d.ts",
"default": "./dist/edge.js"
}
}
},
"files": [
Expand Down
45 changes: 45 additions & 0 deletions packages/libsql/src/edge.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/**
* Edge/Cloudflare Workers entrypoint for @voltagent/libsql
*
* This module provides edge-compatible adapters that work with Cloudflare Workers,
* Vercel Edge Functions, and other edge runtimes.
*
* Key differences from the main entrypoint:
* - Uses @libsql/client/web instead of @libsql/client
* - Only supports remote Turso URLs (libsql://)
* - No file system operations (no local SQLite support)
*
* Usage:
* ```typescript
* import { LibSQLMemoryAdapter } from "@voltagent/libsql/edge";
*
* const adapter = new LibSQLMemoryAdapter({
* url: "libsql://your-db.turso.io",
* authToken: "your-token",
* });
* ```
*/

// Export Edge Memory adapter (with alias for drop-in compatibility)
export { LibSQLMemoryAdapterEdge as LibSQLMemoryAdapter } from "./memory-v2-adapter-edge";
export { LibSQLMemoryAdapterEdge } from "./memory-v2-adapter-edge";
export type {
LibSQLMemoryEdgeOptions as LibSQLMemoryOptions,
LibSQLMemoryEdgeOptions,
} from "./memory-v2-adapter-edge";

// Export Edge Observability adapter (with alias for drop-in compatibility)
export { LibSQLObservabilityAdapterEdge as LibSQLObservabilityAdapter } from "./observability-adapter-edge";
export { LibSQLObservabilityAdapterEdge } from "./observability-adapter-edge";
export type {
LibSQLObservabilityEdgeOptions as LibSQLObservabilityOptions,
LibSQLObservabilityEdgeOptions,
} from "./observability-adapter-edge";

// Export Edge Vector adapter (with alias for drop-in compatibility)
export { LibSQLVectorAdapterEdge as LibSQLVectorAdapter } from "./vector-adapter-edge";
export { LibSQLVectorAdapterEdge } from "./vector-adapter-edge";
export type {
LibSQLVectorEdgeOptions as LibSQLVectorOptions,
LibSQLVectorEdgeOptions,
} from "./vector-adapter-edge";
Loading