Otis
sirdb
Otis | sirdb | |
---|---|---|
1 | 4 | |
14 | 562 | |
- | - | |
7.0 | 0.0 | |
2 months ago | 10 months ago | |
xBase | JavaScript | |
- | GNU Affero General Public License v3.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Otis
-
Multi-type file viewer
Otis open table inspector
sirdb
- Show HN: Sirdb – simple Git diffable toy database on the filesystem
- Show HN: SirDB – Git-diffable database on your filesystem in JSON
- Git forkable, syncable, diffable JSON database
-
Dolt is Git for Data: a SQL database that you can fork, clone, branch, merge
I find a balance between this using git on JSON files. And I build the JSON files into a database (1 file per record, 1 directory per table, subdirectories for indexes). The whole thing is pretty beautiful, and it's functioning well for a user-account, access management database I'm running in production. I like that I can go back and do:
`git diff -p` to see the users who have signed up recently, for example.
You can get the code, over at: https://github.com/i5ik/sirdb
The advantages of this approach are using existing unix tooling for text files, solid versioning, easy inspect-ability, and leveraging the filesystem B-Tree indexing as a fast index structure (rather than having to write my b-trees). Another advantage is hardware-linked scaling. For example, if I use regular hard disks, it's slower. But if I use SSDs it's faster. And i should also be possible to mount the DB as a RAM disk and make it super fast.
The disadvantages are that the database side still only supports a couple of operations (like exact, multikey searches, lookup by ID, and so on) rather than a rich query language. I'm OK with that for now, and I'm also thinking of using skiplists in future to get nice ordering property for the keys in an index so I can easily iterate and page over those.
What are some alternatives?
noms - The versioned, forkable, syncable database
SheetJS js-xlsx - 📗 SheetJS Spreadsheet Data Toolkit -- New home https://git.sheetjs.com/SheetJS/sheetjs
nessie - Nessie: Transactional Catalog for Data Lakes with Git-like semantics