A table database. Built on bolt, with neat features like protobuf integration, secondary indices, unique fields, and foreign keys.
Go to file
2020-04-16 00:22:30 -05:00
stringy initial commit 2020-04-15 23:53:50 -05:00
.gitignore initial commit 2020-04-15 23:53:50 -05:00
actions.go initial commit 2020-04-15 23:53:50 -05:00
common_test.go initial commit 2020-04-15 23:53:50 -05:00
constraint_elementsnotnull.go initial commit 2020-04-15 23:53:50 -05:00
constraint_elementsnotnull_test.go initial commit 2020-04-15 23:53:50 -05:00
constraint_foreign.go initial commit 2020-04-15 23:53:50 -05:00
constraint_notnoull_test.go initial commit 2020-04-15 23:53:50 -05:00
constraint_notnull.go initial commit 2020-04-15 23:53:50 -05:00
constraint_unique.go initial commit 2020-04-15 23:53:50 -05:00
constraint_unique_test.go initial commit 2020-04-15 23:53:50 -05:00
constraints.go initial commit 2020-04-15 23:53:50 -05:00
db.go initial commit 2020-04-15 23:53:50 -05:00
db_test.go initial commit 2020-04-15 23:53:50 -05:00
go.mod initial commit 2020-04-15 23:53:50 -05:00
go.sum initial commit 2020-04-15 23:53:50 -05:00
index_array.go initial commit 2020-04-15 23:53:50 -05:00
index_array_test.go initial commit 2020-04-15 23:53:50 -05:00
index_simple.go initial commit 2020-04-15 23:53:50 -05:00
indicies.go initial commit 2020-04-15 23:53:50 -05:00
indicies_test.go initial commit 2020-04-15 23:53:50 -05:00
internals.go initial commit 2020-04-15 23:53:50 -05:00
iteration.go initial commit 2020-04-15 23:53:50 -05:00
Jenkinsfile add shebang to test script; install bash in container 2020-04-16 00:09:55 -05:00
query.go initial commit 2020-04-15 23:53:50 -05:00
query_test.go initial commit 2020-04-15 23:53:50 -05:00
queryop.go initial commit 2020-04-15 23:53:50 -05:00
README.md add readme 2020-04-16 00:22:30 -05:00
table.go initial commit 2020-04-15 23:53:50 -05:00
test.proto initial commit 2020-04-15 23:53:50 -05:00
test.sh add shebang to test script; install bash in container 2020-04-16 00:09:55 -05:00
transaction.go initial commit 2020-04-15 23:53:50 -05:00

tdb Build Status

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.