Skip to content

Repository files navigation

AccessUtility 97 (.NET 10 Native AOT)

CI/CD Pipeline License: MIT .NET 10 Tests

AccessUtility is a high-performance, standalone diagnostics, repair, forensic recovery, and migration suite built in .NET 10 (Native AOT) designed specifically for legacy Microsoft Access 97 (.mdb / Jet 3.5) databases.

Built completely independent of legacy COM drivers, Access runtime components, or System.Data.OleDb, AccessUtility parses, analyzes, and reconstructs 2048-byte Jet 3.5 binary pages directly with zero-allocation memory-mapped streaming.


✨ Key Features & Capabilities

  • ⚑ Native AOT Performance: Instantaneous startup time (<10ms), minimal RAM footprint, and zero runtime dependencies.
  • πŸ—„οΈ Multi-Dialect SQL Migration Exporter: Translates legacy Jet 3.5 tables, primary keys, non-cyclic foreign keys, and saved query views into optimized DDL and batched DML scripts for:
    • PostgreSQL (SERIAL, BYTEA, TIMESTAMP, DOUBLE PRECISION)
    • MySQL / MariaDB (AUTO_INCREMENT, TINYINT(1), LONGTEXT, ENGINE=InnoDB)
    • Microsoft SQL Server (T-SQL) (IDENTITY(1,1), BIT, DATETIME2, NVARCHAR(MAX))
    • SQLite (INTEGER PRIMARY KEY AUTOINCREMENT, TEXT, BLOB)
    • Oracle (GENERATED ALWAYS AS IDENTITY, VARCHAR2, CLOB, BLOB)
    • ANSI SQL (Universal portable DDL)
  • πŸ“Š Modern Analytical Exporters: Direct physical export to Apache Parquet (with Snappy compression), DuckDB analytics database, and streaming JSON Lines (.jsonl).
  • πŸ”¬ Forensic Record Carver: Scans unallocated slack space and deleted slot directories to salvage dropped or deleted records with confidence scoring (High/Medium/Low).
  • πŸ—ΊοΈ Interactive Physical Sector Map & Hex Inspector: Classifies every 2KB page (Header, PAM, TDEF, Data, Index, Slack, Corrupt) and displays formatted 16-byte hexadecimal and ASCII character views.
  • πŸ“ˆ Mermaid ERD Visualizer: Generates entity-relationship diagrams and Markdown documentation directly from database schemas.
  • πŸ›‘οΈ Deep Compact & Sector Repair: Purges slack space, isolates corrupt byte ranges, rebuilds page structures, and cleans up stale orphan .ldb lock files.
  • πŸ”‘ Password & Security Decryptor: Decrypts Jet 3.5 database passwords and parses System.mdw Workgroup information files.
  • πŸ–ΌοΈ Media & Query Extractors: Extracts embedded OLE blobs (BMP, JPG, PDF, Word) and parses MSysQueries into standalone .sql files.
  • πŸ€– AX AI Assistant & Web UI: Interactive natural language CLI assistant and single-page embedded web dashboard.

πŸš€ Quick Start

Ensure you have the .NET 10 SDK installed.

# Clone the repository
git clone https://github.com/hoangtran1411/access-utility.git
cd access-utility

# Build and run all 80+ unit tests
dotnet test

# Publish Native AOT single-file binary
dotnet publish -c Release

πŸ’» Command Reference

Command Description Example
diagnose Run health check, PAM fragmentation, and optional forensic scan AccessUtility.exe diagnose Main.mdb --forensic-scan
compact Defragment database, rebuild pages, and shrink file size AccessUtility.exe compact Main.mdb --output Clean.mdb
repair Deep sector recovery with optional deleted record carving AccessUtility.exe repair Damaged.mdb --carve-deleted
carve Standalone forensic carver for slack space and deleted rows AccessUtility.exe carve Damaged.mdb --output ./salvaged.sqlite
export Export to Parquet, DuckDB, JSONL, Multi-Dialect SQL, SQLite, or CSV AccessUtility.exe export Main.mdb --format sql --dialect postgres
schema Export clean DDL schema script with primary and foreign keys AccessUtility.exe schema Main.mdb --dialect mysql --output ./schema.sql
erd Generate Mermaid entity-relationship diagram and markdown AccessUtility.exe erd Main.mdb --output ./schema.md
hex Inspect low-level 2048-byte page hexadecimal and ASCII dump AccessUtility.exe hex Main.mdb --page 0
password Decrypt database password and inspect .mdw workgroups AccessUtility.exe password Protected.mdb
extract-ole Extract embedded OLE media (BMP, JPG, PDF, DOC) to disk AccessUtility.exe extract-ole Products.mdb --output ./extracted/
extract-queries Reconstruct saved Access queries to .sql files AccessUtility.exe extract-queries Sales.mdb --output ./queries/
lockstat Inspect connected users and clean up orphan .ldb lock files AccessUtility.exe lockstat Shared.mdb --clean
diff Compare two database schemas and generate migration scripts AccessUtility.exe diff Dev.mdb Prod.mdb --dialect postgres
daemon Run background automated compaction and rolling backups AccessUtility.exe daemon Main.mdb --interval 24h
logs View and filter persistent SQLite audit logs AccessUtility.exe logs --tail 50 --level Warning
web Start embedded web dashboard with interactive visualizer AccessUtility.exe web --port 5000
ax Ask AX AI Assistant to execute maintenance tasks AccessUtility.exe ax "Export schema to PostgreSQL SQL"

πŸ“– Documentation Index

For deep architectural dives and developer guides, explore the docs/ directory:


🀝 Contributing

Contributions are welcome! Please check out CONTRIBUTING.md for guidelines.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

AccessUtility πŸ› οΈ (.NET 10 Native AOT)

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages