stringy | ||
.gitignore | ||
actions.go | ||
common_test.go | ||
constraint_elementsnotnull.go | ||
constraint_elementsnotnull_test.go | ||
constraint_foreign.go | ||
constraint_notnoull_test.go | ||
constraint_notnull.go | ||
constraint_unique.go | ||
constraint_unique_test.go | ||
constraints.go | ||
db.go | ||
db_test.go | ||
go.mod | ||
go.sum | ||
index_array.go | ||
index_array_test.go | ||
index_simple.go | ||
indicies.go | ||
indicies_test.go | ||
internals.go | ||
iteration.go | ||
Jenkinsfile | ||
query.go | ||
query_test.go | ||
queryop.go | ||
README.md | ||
table.go | ||
test.proto | ||
test.sh | ||
transaction.go |
tdb
TDB is a table-oriented database in golang built atop bolt. It does lots of things:
- Records stored in protobuf with automatic (de)serialization
- Indexed secondary fields
- Unique secondary fields
- Cross-table elationships (strong foreign keys)
- Indexing of array fields
- Non-null constraints
- (Vaguely) optimizing query engine
Status
Proof of concept. I aim to use it in some of my projects so it will be maintained as long as makes sense.
It is tested, but iIt probably isn't safe. It isn't benchmarked, so it probably isn't fast. It's getting there, and currently achieves its goals of being feture rich and having few dependencies.