0.35.3
drizzle-team/drizzle-orm0.35.3Oct 21, 2024by github-actions[bot]
AI Summary
This release adds native support for all `@libsql/client` driver variations in Drizzle ORM, enabling connectivity to LibSQL/Turso databases across different platforms and protocols.
Key Highlights
- Added support for `@libsql/client` - default module that auto-detects platform (node/web) based on bundler settings
- Added `@libsql/client/node` module for Node.js environments supporting :memory:, file, wss, http and turso protocols
- Added `@libsql/client/web` module for fullstack web frameworks (Next.js, Nuxt, Astro)
- Added protocol-specific modules: `@libsql/client/http` (http/https), `@libsql/client/ws` (ws/wss), and `@libsql/client/sqlite3` (file/:memory:)
- Added separate experimental `@libsql/client-wasm` package for WASM-based connections
New Features
- Native LibSQL driver with automatic platform detection
- Node.js compatible LibSQL driver module
- Web framework compatible LibSQL driver module (Next.js, Nuxt, Astro)
- HTTP/HTTPS protocol support via dedicated module
- WebSocket (ws/wss) protocol support via dedicated module
- SQLite3 file and in-memory database support
- Experimental WASM-based LibSQL driver
Full Release Notes
# New LibSQL driver modules
Drizzle now has native support for all `@libsql/client` driver variations:
1. `@libsql/client` - defaults to node import, automatically changes to web if target or platform is set for bundler, e.g. `esbuild --platform=browser`
```ts
import { drizzle } from 'drizzle-orm/libsql';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
```
2. `@libsql/client/node` node compatible module, supports :memory:, file, wss, http and turso connection protocols
```ts
import { drizzle } from 'drizzle-orm/libsql/node';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
```
3. `@libsql/client/web` module for fullstack web frameworks like next, nuxt, astro, etc.
```ts
import { drizzle } from 'drizzle-orm/libsql/web';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
```
4. `@libsql/client/http` module for http and https connection protocols
```ts
import { drizzle } from 'drizzle-orm/libsql/http';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
```
5. `@libsql/client/ws` module for ws and wss connection protocols
```ts
import { drizzle } from 'drizzle-orm/libsql/ws';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
```
6. `@libsql/client/sqlite3` module for :memory: and file connection protocols
```ts
import { drizzle } from 'drizzle-orm/libsql/wasm';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
```
7. `@libsql/client-wasm` Separate experimental package for WASM
```ts
import { drizzle } from 'drizzle-orm/libsql';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
```