PyPi: https://pypi.org/project/slowstore
What Slowstore does
slowstore is simple to use, single file, key-value store that stores your objects as JSON files in a live fashion (by default).
It is designed to be easy to plug into your program, without the need of server, connection strings, nothing, just provide the directory where you like to store your files.
Simply, consider it like a dictionary that auto stores changes on disk, you can further inspect these changes and undo/redo them. Who can use it
You have some idea and you like not to think about your objects storage at all but to have the following goodies:
whenever you change something it's on the disk persisted for the next run.
when something crashes, the last valid state is on disk on a readable Json file with the changes stored,
The objects you manipulate are directly stored on FS.
And you do nothing in the code about all of the above.
ComparisonThere are multiple projects that store objects on file system, but they mostly behave like regular dbs and mainly use pickled objects. This library has an intent for a collection of users Slowstore[User] to be treated just as dict of User objects synced with their file counterparts. Not Production Ready
Slowstore is slow because by default it writes every change on the disk. It loads every item in memory on load (will be changed)
So, it is intended to be used for exploration.