Is there something like mongodb/couchdb that does the sqlite philiosophy of an in-process database that's just saved out to a file?
I need to convert a python program to store some data in a database and I'd rather not deal with SQL.
Is there something like mongodb/couchdb that does the sqlite philiosophy of an in-process database that's just saved out to a file?
I need to convert a python program to store some data in a database and I'd rather not deal with SQL.
I mean I could always build a small wrapper around an SQLite database I stuff JSON into
but I'd rather not have to
It could be worse, you could be working with mnesia and erlang. (Which I love, don't get me wrong, it's just a really weird db.)
@foone I keep getting ads for some AI BS with a tagline like "write SQL you'll love" and just, what? No. Fuck off.
I write my own SQL tysvm. And it's good SQL that does the job as efficiently as the gods-awful database I work with allows.
I reduced overhead by 99.6% using SQL that I wrote.
I just detest this trend. It's mind numbing.
... got a bit ranty there, sorry.
@darkling @foone I don't think so, in better languages it leads to things like these. The sheer instability of Python is probably why no one has bothered.
Persistent objects predate SQL as a concept.
"why would I do this, I can just write SQL?"
As for why? It can outperform SQL<->object conversion (including when you do it manually with optimizations an ORM couldn't safely do) by magnitudes when done well.
@foone Would rocksDB work for what you want?
LMDB : the key value store backing OpenLDAP. Stood out for me as one of the better choices when looking for something to manage SNOMED CT (a big medical code set).
https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database
@foone berkeley db / gdbm / tokyocabinet / LDBM / etc.
Python's "dbm" module actually has a sqlite backend!
@foone none that we've ever seen. it's a lot of work to provide that abstraction (the sqlite source is a good read, it goes into some depth)
well, notionally you could go all the way back to berkeleydb, but other than that
@foone It may be over engineered for your purposes, but maybe automerge could work. Automerge can work like a document database and it has a file storage adapter. It’s meant for sharing data between multiple clients, so it may have a lot of stuff you don’t need. It’s written in rust though the first class support seems to target javascript.