Skip to content

About

A modern, cross-platform Microsoft Access alternative built in Rust, with native ACCDB/MDB compatibility, and peer-to-peer collaboration

Resources

Stars

8 stars

Watchers

0 watching

Forks

Repository files navigation

TableCraft

A cross-platform Microsoft Access reimplementation in development, targeting faithful native MDB/ACCDB behavior and familiar Access workflows. The CLI supports bounded browsing and queries; the desktop UI and general native editing are still in development.

Current work targets full native CRUD and Access queries for Jet 4 and ACE 12, 14, 15 and 16; implementation is still partial. SQLite and .tcraft projects are paused, including Python automation and project conversion. The product direction sets the target for Access workflows, defaults, restrictions and documented quirks.

Compatibility and planned tiers

Format Current support Planned tier
ACE 16 .accdb · Access 2016 and later Bounded reads and queries; restricted journaled writes Tier 1: full native CRUD and queries
Jet 4 .mdb · Access 2000–2003 Bounded reads and queries; qualified offline Int32 updates Tier 1
ACE 12 .accdb · Access 2007 Bounded reads and queries Tier 1
ACE 14 .accdb · Access 2010 Bounded ordinary table reads; advanced variants need qualification Tier 1
ACE 15 .accdb · Access 2013 Not separately qualified; support follows the actual stored profile Tier 1
Jet 3 .mdb · Access 95/97 Header recognition Tier 3 — legacy: planned reads and queries
Jet 1/2 .mdb · Access 1/2 Not implemented Experimental: optional read-only research

Tiers describe planned priorities, not completed compatibility. ACE 16's long-term target is 100% compatibility; native Access qualification remains pending. VBA execution is deferred. Runtime/compiled databases and bounded template/deployment packages use their documented read profiles.

Install

Prebuilt archives will be available from Releases for Windows, macOS and Linux. Extract tablecraft (tablecraft.exe on Windows) onto your PATH. Archives include license notices and SHA-256 checksums accompany each release.

To build from source, install the pinned Rust toolchain and run:

cargo install --path apps/tablecraft-cli --locked

Use the CLI

tablecraft --help
tablecraft inspect example.accdb
tablecraft tables example.accdb --count
tablecraft rows example.accdb Customers --limit 25
tablecraft rows example.mdb --all --limit 5
tablecraft query run --database example.accdb 'SELECT TOP 10 * FROM Customers'
tablecraft create new.accdb --blank

Omit the table name in rows when the database has exactly one user table.

Tables display with borders in terminals and as TSV when redirected. Use --format table or --format tsv to choose explicitly. System tables are hidden from listings by default; add --show-system to tables or inspect --catalog to include them. Commands that read encrypted files prompt for a password when needed; -p / --password is also available.

See the CLI guide for saved queries, multivalue fields, encryption, streaming and resource controls.

Explicit experimental write-copy commands provide ACE 16 UPDATE, INSERT and DELETE previews on fresh files. General native saves remain in development; a separate journaled BeforeChange profile supports restricted Int32 and fixed-scalar updates. The ordinary-content route also supports fixed updates to qualified tables, with a separate fitting Text/Binary route and restricted row deletion. Qualified targets also accept explicit-row insertion.

Desktop preview

Start the native desktop preview with an optional database path:

cargo run -p tablecraft-desktop -- path/to/example.accdb

The first desktop slice provides table navigation, bounded datasheets, field inspection and a SQL editor over existing Access services. It opens a snapshot of a stable file up to 64 MiB; close other writers first. Restricted reviewed offline cell edits are implemented on macOS/Linux and local-NTFS Windows; actual Windows execution remains unqualified. General editing, designers and desktop release packaging remain in development. Interrupted TableCraft saves have an explicit Open-time recovery flow. See the desktop guide. File → New → Blank database creates an unencrypted ACE 16 ACCDB. Windows creation uses local NTFS and still requires runtime qualification. Existing destinations are never replaced. The new file opens with an unsaved Table1 draft. Create → Table can repeatedly add tables within qualified ACE 16 layouts, including qualified mixed generated/manual/keyless tables. That is an implementation boundary; broader native growth and general schema changes remain in development. The draft suggests an unused TableN name. Names, supported types and bounded field properties can be edited in the initial table's Design view, with new fields entered directly in its blank Name/Type row. Fields can also be named in their headers, and a first record can be entered before saving the table. That record then uses a separate reviewed row save. Create → Table Design starts empty for canonical blank and qualified populated sources, with supported manual numeric keys or an explicit keyless save. General schema authoring and native allocation growth remain in development. Windows saves retain an intact retired journal artifact rather than claiming durable deletion. See database creation for its limits. Use --mock for synthetic UI review, with light/dark themes and interface languages under File → Options.

Documentation

License

Apache-2.0. Distributed builds also include third-party notices.

About

A modern, cross-platform Microsoft Access alternative built in Rust, with native ACCDB/MDB compatibility, and peer-to-peer collaboration

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages