MCH_Delphi_Software
Delphi In-memory databases and miscellaneous projects.
- Active · last change 11-5-2026
- ★ 19 on GitHub
README
MCH_Delphi_Software
GitHub repo for open sourced MCH Software.
Most recent (2026) development is in Common/MemDB2:
- Builds on MemDB code, quick, and developed up to the end of 2025.
- They share the same file format and API's.
- MemDB now legacy code. Will be removed start of Dec 2026.
- MemDB now has an upgrade tool (to MemDB2 format) on the MemDB_Upgrade_Tool branch.
- MemDB2 better for more deeply parallel / async workloads.
- MemDB2 now has C API, and pre-built binaries for Visual Studio jockeys.
- Now suitable for general use, with many bugfixes from AI reivew. Significantly more robust.
- Docs\ folder contains Claude code review for those of you worried about code quality.
- MemDB2 now compiles & runs on both Win32/64 and Android 32/64
- SQL support for MemDB2 in progress.
Also:
- TP Lex / Yacc port for Delphi now at: https://github.com/MartinCHarvey/MCH-TPLY41
- Now has an OO mode "-oo" for generating object orientated code.
- Support via additional declarations "%classname" "%classdecl" "%classfunc" "%classvar" for OO encapsultated lexers and parsers.
If any of you folks get some of this to compile / run under the FPC compiler, I'd be very interested to know.
Summary of contents.
Files / Folders:
- KnowComment: A Delphi client for Instagram (and eventually Twitter too, but needs a few fixes). Needs port to MemDB2 in the next month.
- CoCoDM: A Delphi port of the CoCo/R parser generator.
- ProjectXPlant: A handy utility which parses delphi project files and copies projects from one location to another.
- CheckIn: Simple hard-coded COVID-19 inspired web application.
- Requires users to check-in online regularly.
- Sends notifications to nominated contacts if they don't.
- Sudoku: A sudoku solver.
- Simple testapp for Exact cover DLX algorithm. Allows you to load, save, and solve sudoku problems fast.
- Sudoku / Symmetries.
- Some ways of finding isomorphic board configurations.
- Graph method has errors, but included for interest.
- Fastest is "CellCountMT", still being optimised.
- Some ways of finding isomorphic board configurations.
- NQueens: Solves the N queens problem.
- Another, perhaps simpler, example of the Exact cover algorithm.
- MFract.
- A simple fractal generator (Mandelbrot / Julia). Install MCHComponents bpl first.
Common: Common utility code, including:
- MCHComponents visual component library (required for MFract - TSizeableImage).
- Open project, right click MCHComponents.bpl, select "install" to add to IDE palette.
- Raw AVL tree.
- Copy on write AVL tree (CowTree).
- Read and Write cached memory streams.
- Doubly linked lists.
- HTML / JSON / CSS / Javascript parsers.
- HTTP fetcher.
- Combined HTTP fetch and document parse.
- Indexed store (see http://www.martincharvey.net/ for more info).
- Logging code.
- Lightweight in memory database engine. Currently suitable for relatively small (in modern terms) datasets. E-mail me for an explanation of limitations.
- Ordinal set handling.
- Reconfigurable lexer.
- Custom object streaming system.
- Debug object tracking.
- Custom threadpool implementation.
- Sparse Matrices.
- DLX like "Algorithm X" implementation for the exact cover problem.
- Parallelizer: Spawn threads to run method invocations in parallel.
Additional testapps and utility code.
- CoWTree testapp: Common/CowTree/Test
- MemDB testapp: Common/MemDB/Test/
- Lexer testapp: Common/SoftLexer/Test/
- Streaming system testapp: Common/StreamingSystem/Test/
- Threadpool testapp: Common/WorkItems/Test/
- Threadpool testapp: Common/WorkItems/Test2/
- Threadpool testapp: Common/WorkItems/Test3/
- Instagram / Twitter importer testapp MMapper/
- FetchParse library testapp: PageMapper/
- Sparse Matrix testapp Commmon/SparseMatrix/Test
- ExactCover testapp Common/ExactCover/Test
- Batch Sudoku solver (Sudoku/BatchThreadedSolver)
Future development plans:
- Clean up parser error recovery code with a "standard" lexer.
- MemDB: Query engine.
- Investigate compilability under FreePascal compiler.
Comments / queries to martin_c_harvey@hotmail.com

