madIS

maintenance

by MaDgIK Lab, University of Athens · since 2009 · also known as madis, MaDgIK madIS

SQLite extended with Python functions and virtual tables, turning SQL into a data-processing workbench.

relationalresearch prototypeopen source (permissive)legacy

maintenance. Academic system (University of Athens, c. 2009-2013); occasional commits since, most recently May 2025.

Overview

madIS is an extensible relational system from the MaDgIK lab at the University of Athens (Yannis Ioannidis' group), built on SQLite through the APSW wrapper. Its point is to do data work inside SQL: Python row, aggregate and virtual-table functions read files, URLs and other sources as tables, parse and transform text, and plug into a workflow engine, without importing data first. The authors compare it to Hive's SQL-plus-UDF style, minus the cluster, and say it handles tens of millions of rows on one machine; it also includes a multidimensional index to speed multi-constraint joins against external sources. Code dates from 2009-2013, and the GitHub repository sees only occasional updates, the latest in 2025.

Strengths & trade-offs

Strengths

  • +Python row, aggregate and virtual-table functions callable directly from SQL
  • +Query files and network sources as tables without importing them
  • +Built-in workflow engine for multi-step transformations
  • +Inherits SQLite's reliability and zero-administration footprint

Trade-offs

  • −Small academic codebase with sparse, aging documentation
  • −Single-machine only; no distributed execution
  • −Python UDF overhead on very large scans

Great for

  • +Text and data wrangling pipelines expressed in SQL
  • +Prototyping new operators or indexes for database research
  • +Ad-hoc analysis joining local files with remote sources

Think twice for

  • −Multi-user transactional applications
  • −Datasets that need a cluster

Capabilities

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

✓Transactions
✓Joins
✓Secondary indexes
✓Stored procedures
✓Durable persistence
–Full-text search
–Vector search
–Geospatial
–JSON
–Change data capture
–Triggers
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–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
Full ACID
Consistency
Strong
Schema
Flexible
Architecture
Embedded, Single node
Query languages
SQL (SQLite dialect), Python UDFs

Single machine; tens of millions of rows per the authors.

Deployment

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

Ecosystem

apis & protocolsPython (APSW), Interactive terminal (mterm)
client languagesPython

Alternatives to madIS

Compare all→
SQLiteRelational75.5

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

madis vs sqlite →
DuckDBColumnar / OLAP63.7

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

madis vs duckdb →
Apache Spark SQLRelational50.3

Spark's SQL and DataFrame engine for large-scale batch, streaming and lakehouse processing.

madis vs apache-spark-sql →
Apache HiveRelational30.1

The original SQL-on-Hadoop warehouse, now mostly valued for its Metastore and Iceberg support.

madis vs apache-hive →
Microsoft AccessRelational45.8

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

madis vs microsoft-access →
FirebirdRelational32.8

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

madis vs firebird →

madIS FAQ

What is madIS?

madIS is a relational database by MaDgIK Lab, University of Athens, first released in 2009. madIS is an extensible relational system from the MaDgIK lab at the University of Athens (Yannis Ioannidis' group), built on SQLite through the APSW wrapper. Its point is to do data work inside SQL: Python row, aggregate and virtual-table functions read files, URLs and other sources as tables, parse and transform text, and plug into a workflow engine, without importing data first. The authors compare it to Hive's SQL-plus-UDF style, minus the cluster, and say it handles tens of millions of rows on one machine; it also includes a multidimensional index to speed multi-constraint joins against external sources. Code dates from 2009-2013, and the GitHub repository sees only occasional updates, the latest in 2025.

Is madIS open source?

Yes. madIS is open source. License: zlib-style permissive license.

Does madIS support ACID transactions?

Yes. madIS supports full ACID transactions, with strong consistency.

Does madIS scale horizontally?

madIS 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 madIS?

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

What is madIS best for?

madIS is a strong fit for text and data wrangling pipelines expressed in SQL; prototyping new operators or indexes for database research; and ad-hoc analysis joining local files with remote sources. Think twice for multi-user transactional applications.

What are the best alternatives to madIS?

Common alternatives to madIS include SQLite, DuckDB, Apache Spark SQL, Apache Hive and Microsoft Access. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

Is madIS still maintained?

madIS is in maintenance mode. Academic system (University of Athens, c. 2009-2013); occasional commits since, most recently May 2025.

How popular is madIS?

madIS ranks #649 of 844 databases on the WhichDB Score (0.4/100), and #196 among relational databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.