LibSQL Storage
The LibSQL storage implementation provides a SQLite-compatible storage solution that can run both in-memory and as a persistent database.
Installation
npm install @mastra/storage-libsql
Usage
import { LibSQLStore } from "@mastra/core/storage/libsql";
// File database (development)
const storage = new LibSQLStore({
config: {
url: 'file:storage.db',
}
});
// Persistent database (production)
const storage = new LibSQLStore({
config: {
url: process.env.DATABASE_URL,
}
});
Parameters
url:
string
Database URL. Use ':memory:' for in-memory database, 'file:filename.db' for a file database, or any LibSQL-compatible connection string for persistent storage.
authToken?:
string
Authentication token for remote LibSQL databases.
Additional Notes
In-Memory vs Persistent Storage
The file configuration (file:storage.db
) is useful for:
- Development and testing
- Temporary storage
- Quick prototyping
For production use cases, use a persistent database URL: libsql://your-database.turso.io
Schema Management
The storage implementation handles schema creation and updates automatically. It creates the following tables:
threads
: Stores conversation threadsmessages
: Stores individual messagesmetadata
: Stores additional metadata for threads and messages