Speedy

maintenance

by Harald Wabnig · since 2002 · also known as Speedy1

Tiny main-memory SQL database for Windows and Linux built to make unit testing easy; last updated 2003.

relationaldatabase engineopen source (permissive)legacy

maintenance. Downloads remain online, but the last release was 2.0.1 (July 2003) and development stopped. Use SQLite or DuckDB for embedded SQL in tests.

Overview

Speedy was a one-person project by Harald Wabnig: a small client/server main-memory SQL database, plus Speedy1, a variant linked straight into the application so end users never install a database. It was built to support unit-test environments, with sub-selects, joins, DISTINCT, cursors, transactions and unique indexes through a C API, and came with a viewer, a designer and code generators. The author listed its limits plainly: data must fit in virtual memory, no network access, transactions lock the whole database and query optimisation is manual. The last version, 2.0.1, came out in July 2003; the site still hosts the downloads.

Strengths & trade-offs

Strengths

  • +Very small footprint with both client/server and linked-in variants
  • +Designed for repeatable unit-test databases
  • +Supports sub-selects, joins, cursors and transactions despite its size

Trade-offs

  • −Unmaintained since 2003
  • −No network access and whole-database locking during transactions
  • −Incomplete SQL (no views, privileges or ALTER TABLE)

Great for

  • +Historical reference for small embedded SQL engines
  • +Legacy C test harnesses that already use it

Think twice for

  • −New projects
  • −Concurrent or networked workloads

Capabilities

Native or official first-party support · 5 of 25 tracked

✓Transactions
✓Joins
✓Secondary indexes
✓In-memory
✓Durable persistence
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Stored procedures
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–Compression
–Encryption at rest
–Role-based access
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Small · ≤ 100 GB
Horizontal scaling
None
Multi-region
No
Transactions
Limited ACID
Consistency
Strong
Schema
Strict
Architecture
In memory, Embedded, Client server
Query languages
SQL (subset)

Whole database must fit in virtual memory on one machine.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

Ecosystem

apis & protocolsC API
client languagesC

Alternatives to Speedy

Compare all→
SQLiteRelational75.5

The in-process SQL engine that ships in every phone, browser and OS: one file, zero servers.

speedy vs sqlite →
DuckDBColumnar / OLAP63.7

In-process columnar SQL database: the SQLite of analytics, running inside your app or notebook.

speedy vs duckdb →
H2 DatabaseRelational23.5

Fast pure-Java SQL engine for embedded, in-memory and test databases, with compatibility modes.

speedy vs h2 →
HyperSQL (HSQLDB)Relational9.4

Long-running pure-Java SQL database with strong SQL:2023 coverage, used embedded and in LibreOffice.

speedy vs hsqldb →
Microsoft AccessRelational45.8

Desktop database and forms builder bundled with Microsoft 365; still everywhere in back offices.

speedy vs microsoft-access →
FirebirdRelational32.8

Lightweight, MVCC relational database from the InterBase lineage, embeddable or client-server.

speedy vs firebird →

Speedy FAQ

What is Speedy?

Speedy is a relational database by Harald Wabnig, first released in 2002. Speedy was a one-person project by Harald Wabnig: a small client/server main-memory SQL database, plus Speedy1, a variant linked straight into the application so end users never install a database. It was built to support unit-test environments, with sub-selects, joins, DISTINCT, cursors, transactions and unique indexes through a C API, and came with a viewer, a designer and code generators. The author listed its limits plainly: data must fit in virtual memory, no network access, transactions lock the whole database and query optimisation is manual. The last version, 2.0.1, came out in July 2003; the site still hosts the downloads.

Is Speedy open source?

Yes. Speedy is open source. License: Permissive MIT-style distribution terms.

Does Speedy support ACID transactions?

Partly. Speedy offers limited ACID guarantees (for example, single-record or single-partition transactions), with strong consistency.

Does Speedy scale horizontally?

Speedy does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at small scale (≤ 100 GB).

How can I run Speedy?

You can self-host it and embed it in your application.

What is Speedy best for?

Speedy is a strong fit for historical reference for small embedded SQL engines and legacy C test harnesses that already use it. Think twice for new projects.

What are the best alternatives to Speedy?

Common alternatives to Speedy include SQLite, DuckDB, H2 Database, HyperSQL (HSQLDB) and Microsoft Access. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is Speedy still maintained?

Speedy is in maintenance mode. Downloads remain online, but the last release was 2.0.1 (July 2003) and development stopped. Use SQLite or DuckDB for embedded SQL in tests.

How popular is Speedy?

Speedy has little measurable public adoption today, so it ranks near the bottom of the WhichDB Score.