Earlier quoted context omitted.
Just SQLite - two tables, one for the nodes, one for edges + some fancy constraints and queries. I was tempted to make a custom binary format, but that's a big task, and it seems to work fine as it is. As for the syncing, that would be really nice, but I haven't come up with an elegant way to do it yet. Suggestions welcome, if anyone has ideas!
git. The right storage backend is either git, or a git-like Merkle tree. This is small data. Individual files for objects are fine. Compacting is better, but not critical. You can write git in a weekend or two: https://wyag.thb.lt/ sqlite is the wrong tool for the job, beyond an initial prototype. git and hg figured this stuff out decades ago. Good job, by the way. This seems like the sort of thing which, if: * it di…
Fossil does seems to have issues when the VCS grows into many many gigabytes of data, like the entire OpenBSD source tree didn't work out very well in Fossil, but the chances of a personal task manager ever growing that size is slim to none I would imagine.