Client Libraries

Official clients for multiple languages. All support the full OxiDB API.

Rust (Embedded)

Use OxiDB as a library. Zero network overhead. Add to Cargo.toml:

[dependencies]
oxidb = "0.25"

Python

Zero external dependencies. Uses only the standard library.

from oxidb import OxiDbClient
db = OxiDbClient("127.0.0.1", 4444)

Go v0.25.1

Native Go client with OxiWire binary protocol. v0.25.1 added stored procedures, TTL indexes, retention policies, alerting, blob text extraction, backup/restore, and SQL dialect switching.

import "oxidb"
client, _ := oxidb.ConnectDefault()
client.UseOxiWire()

// Stored procedures
client.CreateProcedure("name", oxiScript)
client.CallProcedure("name", args)

// TTL + retention
client.CreateTTLIndex("sessions", "created_at", 3600)
client.SetRetention("events", 30)

// Alerting · Backup · Dialect
client.CreateAlert(rule)
client.Backup(path)
client.SetDialect("postgresql")

.NET (TCP) v0.28.18

Pure managed C# client. HelloAsync handshake, typed FindAsync<T> / InsertReturningIdAsync, IAsyncEnumerable<T> streaming, services.AddOxiDbTcp(...) DI extension, Query.Eq/Gte/In/... builder, domain exception hierarchy.

dotnet add package OxiDb.Client.Tcp

.NET (Embedded) v0.28.18

FFI bindings to the native Rust library. In-process, no server needed. Bundles native runtimes for darwin-arm64/amd64, linux-x64/arm64, windows-x64.

dotnet add package OxiDb.Client.Embedded

.NET (EF Core) v0.28.18

Entity Framework Core provider. LINQ, migrations, both TCP and embedded modes. Works against either OxiDb.Client.Tcp or OxiDb.Client.Embedded as the transport.

dotnet add package OxiDb.EntityFrameworkCore

.NET (LINQ) v0.28.18 NEW

Standalone LINQ provider over IOxiDbClient. client.GetCollection<T>("users").Where(u => u.Age >= 18).ToListAsync(). Translates expression trees to OxiWire queries; doesn't require EF Core.

dotnet add package OxiDb.Linq