DocsReferenceStorageLibSQL Storage

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 threads
  • messages: Stores individual messages
  • metadata: Stores additional metadata for threads and messages