This expirement will attempt to implement IndexedDB features for Go.
It wraps goleveldb similar to how Chrome’s implementation utilizes LevelDB under the hood.
||index record (unique)|
<store>(string) Name of the Store
<index>(string) Name of the Index
<id>(string, float, bool, nil, slice) unique identifier for a document
<key>(string, float, bool, nil, slice) index key
As per the spec, objects to be stored should be supported by the structured clone algorithm. Currently using Go’s json marshalling.
In Go it is pretty easy to make sync libraries work async, so should be up to the user. However if there is
enough demand async wrappers could be added.
Browser storage limits and eviction criteria are beyond the scope of this project. At least initially.