An open SQL Server-compatible database engine with native persistence by default and WASM support for embedding.
Iridium SQL is an independent Rust implementation built for application-facing compatibility, local-first persistence, and predictable behavior across native, server, and WASM runtimes.
- A T-SQL engine with a native TDS server.
- A persistent database engine by default in native/server mode.
- A WASM runtime for embedding, browser work, and lightweight local use.
- A compatibility-driven project with behavior tracked in docs, not implied by the name.
The goal is to provide an open alternative to SQL Server-style workflows without tying the project to a single runtime shape.
That means:
- native/server usage defaults to durable storage on disk
--memorystays available for ephemeral and test-only scenarios- WASM stays memory-first, with explicit checkpoint/export/import flows when persistence is needed
Run the server with persistent storage:
cargo run --package iridium_server --bin iridium-serverRun in ephemeral mode:
cargo run --package iridium_server --bin iridium-server -- --memoryOn Windows, persistent data defaults to %ProgramData%\Iridium SQL\iridium_sql_data.
Use --data-dir <PATH> to override it, or the portable ZIP's
start-iridium-server-portable.cmd to keep data next to the extracted bundle.
Build the WASM package:
wasm-pack build crates/iridium_wasm --target web --out-dir crates/iridium_wasm/pkgimport { IridiumDatabase } from "@celsowm/iridium-sql-client";
const db = await IridiumDatabase.create();
await db.exec(`
CREATE TABLE dbo.Users (
Id INT IDENTITY(1,1) PRIMARY KEY,
Name NVARCHAR(100) NOT NULL
)
`);
const result = await db.query(`SELECT TOP 1 Name FROM dbo.Users`);For checkpoint-based persistence in WASM or client flows:
const checkpoint = await db.exportCheckpoint();
const restored = await IridiumDatabase.fromCheckpoint(checkpoint);Compatibility is measured, documented, and updated continuously.
Current posture:
- SQL Server compatibility is the target, not a claim of total parity.
- Native/server persistence is the default.
- WASM support is first-class, but intentionally memory-first.
crates/iridium_core- parser, binder, executor, storage, and compatibility logiccrates/iridium_server- TDS server and playground runtimecrates/iridium_wasm- WASM bindingspackages/iridium-client- TypeScript client APIpackages/iridium-playground- browser playground
Iridium SQL is an independent implementation and does not use Microsoft proprietary SQL Server code.
Microsoft and SQL Server are trademarks of Microsoft Corporation. Any mention of SQL Server in this repository is for compatibility and interoperability description only.
MIT