Your project looks very high quality -- benchmarks, tests, and comparisons are basically an indicator in my mind. Looking through the code you've also already left me (or someone else) space to try doing the SQLite as long as we implement it as an Engine[0] -- am I understanding that right? If I trace the code from database.py to engines/.py it looks like that. I really like the balance you've picked between pragmatism and space for expansion/modification.
A couple questions:
- How do you feel about type annotations
in* the code (as opposed to just the comments, as far as I can see)- PyPy? I wonder if you'd get a ~free speedup
[0]: https://github.com/scottrogowski/mongita/blob/master/mongita...