Turso

This page contains the latest information of the releases of RepoDb.Sqlite.Turso library.

View the NuGet package here or download it directly here.

RepoDb.Sqlite.Turso (v0.0.1-alpha1) - Preview

Released: October 8, 2026

New

First (alpha) release of the dedicated Turso provider for RepoDB, built on top of Turso.Data.Sqlite.Provider — Turso’s .NET bindings for the SQLite-compatible Turso engine. Its SqliteConnection lives in the Turso.Data.Sqlite namespace. See Get Started with Turso.

What’s included

  • TursoBootstrap / TursoGlobalConfiguration.UseTurso() — initializes RepoDB for use with the Turso.Data.Sqlite SqliteConnection (GlobalConfiguration.Setup().UseTurso()), mapping the TursoDbSetting, TursoDbHelper and TursoStatementBuilder. See TursoBootstrap and TursoGlobalConfiguration.
  • TursoDbSetting — the SQLite dialect — [/]-quoted identifiers, @ parameter prefix, no default schema, no table hints, no native UPSERT keyword (Merge/MergeAll run as an Exists-then-Insert/Update flow instead), and multi-statement command text support (IsMultiStatementExecutable = true, MultiStatementSeparator = ";").
  • TursoStatementBuilder — generates SQLite-flavored SQL for every operation: LIMIT/OFFSET paging, last_insert_rowid() identity retrieval for Insert, a RETURNING clause for InsertAll, and a plain DELETE FROM ... (no trailing VACUUM) for Truncate.
  • TursoDbHelper — schema/type discovery sourced from pragma table_info(...) (with the table name quoted), with the identity column detected from the CREATE TABLE text in sqlite_master (matched case-insensitively; AUTOINCREMENT or an INTEGER PRIMARY KEY), and SELECT last_insert_rowid() for identity retrieval.
  • Resolvers — DbTypeToTursoStringNameResolver, TursoConvertFieldResolver and TursoDbTypeNameToClientTypeResolver.
  • Parameter attributes mirroring SqliteParameter, settable per entity property: SqliteType.
  • Targets .NET 8, .NET 9 and .NET 10 — .NET Standard is not supported by the underlying driver.

Known limitations (v1)

  • Turso.Data.Sqlite.Provider is a pre-1.0 driver (v0.8.1), and the provider inherits whatever SQLite compatibility gaps it has.
  • No bulk operations package exists for this provider.
  • Automatic conversion (ConversionType.Automatic) is recommended when entity types differ from the driver’s SQLite storage types (for example decimal, boolean or date columns). It is an explicit, process-wide RepoDB option — UseTurso() does not change it.
  • Data Source=:memory: creates a private in-memory database; keep the connection open while using it.
  • Merge/MergeAll are not a single native MERGE statement (SQLite has none); they run as an Exists-then-Insert/Update flow.

Bumps

  • Referenced the RepoDb package v1.17.0-alpha3.
  • References the Turso.Data.Sqlite.Provider package v0.8.1.