Recollect.DatabaseAdapter.LibSQL (recollect v0.5.1)

Copy Markdown View Source

libSQL/SQLite database adapter with native vector support.

This is the recommended adapter for new installations as it requires no external database server - everything is stored in a single file.

Features

  • Native F32_BLOB/F64_BLOB vector types (no extensions needed)
  • Built-in vector similarity functions
  • DiskANN-based vector indexing
  • Single-file database (easy backup/restore)
  • Cross-platform support

Requirements

  • ecto_libsql package
  • libSQL library (bundled with ecto_libsql via Rust NIFs)

Configuration

config :recollect, :database_adapter, Recollect.DatabaseAdapter.LibSQL

Database URL

Local file:

database: "/path/to/recollect.db"

Remote (Turso):

database: "libsql://..."
key: "your-auth-token"

Summary

Functions

Returns SQL for inserting a row with an embedding column.

Convert an embedding list to libSQL vector32() SQL expression.

Functions

insert_embedding_sql(table, columns, embedding_col, embedding_value)

Returns SQL for inserting a row with an embedding column.

For libSQL, embeddings must be wrapped in vector32() function.

vector32_expression(embedding)

Convert an embedding list to libSQL vector32() SQL expression.

Examples

iex> LibSQL.vector32_expression([0.1, 0.2, 0.3])
"vector32('[0.1,0.2,0.3]')"