A report is a file.
MAD is an embedded reporting platform: the MAD Designer and MAD
Viewer apps for iOS, the headless engine that runs them, and the open
.mad document format. A .mad file holds a report’s whole definition –
the query, its tables and joins, and the layout of its elements – in under
100 KB. Anyone who can read the file can run the report against the
database and export it.
The code is at github.com/mthomason/MAD, MIT-licensed.
mad CLI exposes the engine as verbs – inspect,
schema, refresh, export – and drivers register themselves, so a
new data source is a subclass, not a fork..mad container is a bzip2 tar archive holding a
portable SQLite store; no Apple framework is required to open it. The
headless build passes 1,270 tests on Linux, in Docker..mad formatThe open specification, one chapter per file:
What a document is ·
The container ·
The store ·
Reading and writing ·
Companion files ·
Hazards ·
Normative v1 ·
Open questions ·
Verification
mad CLI – inspect,
refresh, and export a .mad from Docker in one line.MADDatabase, register the
driver, return rows.Vision – a report’s result table becomes a data source for other reports, so one document can span several databases.
The MAD Designer app – the report designer built on this engine – has its own site at mad.everydayapps.com.