json1
saga
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.
json1
-
Writing Redux Reducers in Rust
It uses some JSON OT code I wrote, which is without a doubt the most complex code I've ever written in my career: https://github.com/ottypes/json1
-
Version Control for Structure Editing
> Even if we get the OT part right, it’d be huge effort to port this to support other semantic structures with different set of ops
Its very doable, and its been done. Eg, in json1[1] we have support for lots of tree operations on a set of data stored as a JSON tree:
- Insert / delete in lists
- Move (reparent) any object in the tree
- Embedded edits (so if you have a custom type inside a field and define your own operations)
This is all very general purpose. You don't need to do reinvent any of this per application.
[1] https://github.com/ottypes/json1
saga
-
Version Control for Structure Editing
I spent a while working on a generalized version control system when I graduated two years ago. It was called Saga [1]. Saga - get it? The name was the best bit.
It allowed you to specify a “file representation format,” and then used some messy 2d-and-above longest-common subsequence matching algo [3] I can up with to diff the files, and merge them if you wanted. It was a lovely learning experience I tried to pass off as a startup, and got two of my friends involved as cofounders.
From there, we tried to focus (generalized version control is really hard… technically and otherwise), and pivoted to version control for Excel spreadsheets. At one point we had branching and merging working for XLSX files. But as we began to discover what version of Excel customers used, things got a lot less fun. That + lack of interest led to another pivot.
Anyways, for the past 1 year (just passed!) we’ve been building Mito [3] with our learnings from all those spreadsheet folks we spent time above. Mito is effectively a spreadsheet within your Python environment. It’s absolutely still getting off the ground, but we’re pretty proud of the value we’re delivering to users currently!
[1] https://github.com/saga-vcs/saga
[2] https://github.com/saga-vcs/saga/blob/master/saga/base_file/...
[3] https://trymito.io/hn
What are some alternatives?
medley - The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
sharedb - Realtime database backend based on Operational Transformation (OT)