Categorygithub.com/claudiu/TimeShard
repositorypackage
0.0.0-20190607095036-c26f1b576486
Repository: https://github.com/claudiu/timeshard.git
Documentation: pkg.go.dev

# README

TimeShard

TimeShard is an open-source operational transform time series database. It was primarily designed, to store OT-Operations from web edited documents (by sending only the modified bits).

Documentation Go report card License

Currently implemented

  • Insert Operation with Retain to move the cursor.
  • Delete Operation with Retain
  • Data snapshots
  • Squash (See how a document looked in a point in time)
  • JSON Export
  • Error recovery
  • Disk persistence with Snappy
  • Text Formatting

Inserting data

batch := timeshard.NewBatch()

text := []byte("this is a long text")
batch.Insert(0, text)

Deleting data

batch.Delete(0, 10)

Iterators

snap := batch.Snapshot()

iter := snap.Iterator(true)
for iter.HasNext() {
	//iter.Value()
}

FAQ

Q: Is it safe to iterate while adding new data?

A: You can only iterate over snapshots (a copy of a document, at a certain period of time). Snapshots cannot be edited, but you can create Batches from them.

Q: Is it production ready?

A: No. Only if you treat bugs as features.