A table database. Built on bolt, with neat features like protobuf integration, secondary indices, unique fields, and foreign keys.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kegan Myers d94fc4e3be add readme 7 months ago
stringy initial commit 7 months ago
.gitignore initial commit 7 months ago
Jenkinsfile add shebang to test script; install bash in container 7 months ago
README.md add readme 7 months ago
actions.go initial commit 7 months ago
common_test.go initial commit 7 months ago
constraint_elementsnotnull.go initial commit 7 months ago
constraint_elementsnotnull_test.go initial commit 7 months ago
constraint_foreign.go initial commit 7 months ago
constraint_notnoull_test.go initial commit 7 months ago
constraint_notnull.go initial commit 7 months ago
constraint_unique.go initial commit 7 months ago
constraint_unique_test.go initial commit 7 months ago
constraints.go initial commit 7 months ago
db.go initial commit 7 months ago
db_test.go initial commit 7 months ago
go.mod initial commit 7 months ago
go.sum initial commit 7 months ago
index_array.go initial commit 7 months ago
index_array_test.go initial commit 7 months ago
index_simple.go initial commit 7 months ago
indicies.go initial commit 7 months ago
indicies_test.go initial commit 7 months ago
internals.go initial commit 7 months ago
iteration.go initial commit 7 months ago
query.go initial commit 7 months ago
query_test.go initial commit 7 months ago
queryop.go initial commit 7 months ago
table.go initial commit 7 months ago
test.proto initial commit 7 months ago
test.sh add shebang to test script; install bash in container 7 months ago
transaction.go initial commit 7 months ago

README.md

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.