madIS
maintenanceby 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.
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
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
Ecosystem
Alternatives to madIS
The in-process SQL engine that ships in every phone, browser and OS: one file, zero servers.
madis vs sqlite →In-process columnar SQL database: the SQLite of analytics, running inside your app or notebook.
madis vs duckdb →Spark's SQL and DataFrame engine for large-scale batch, streaming and lakehouse processing.
madis vs apache-spark-sql →The original SQL-on-Hadoop warehouse, now mostly valued for its Metastore and Iceberg support.
madis vs apache-hive →Desktop database and forms builder bundled with Microsoft 365; still everywhere in back offices.
madis vs microsoft-access →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.