Back to directory
HouzuoGuo avatar

tiedot

A rudimentary implementation of a basic document (NoSQL) database in Go. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/HouzuoGuo/tiedot.git

2,725

Stars

258

Forks

148

Watchers

BSD-2-Clause

License

2021-09-05: thanks for evaluating tiedot! The project started as a short programming exercise and I am very grateful for the small user base it has received. I am afraid the project has been dormant since 2016, the feature set is minimal and lacking for a modern application. Please consider other embedded DB engine alternatives. In the meanwhile, check out this actively maintained open source project of mine: laitos - Top geek's chindogu.

tiedot

Build Status codecov GoDoc

Documentation

Keywords: Golang, go, document database, NoSQL, JSON

Golang logo

tiedot - Your NoSQL database powered by Golang

tiedot is a document database engine that uses JSON as document notation; it has a powerful query processor that supports advanced set operations; it can be embedded into your program, or run a stand-alone server using HTTP for an API. It runs on *nix and Windows operating systems.

tiedot has fault-tolerant data structures that put your data safety first, while easily scales to 4+ CPU cores.

tiedot has very stable performance, even with millions of records! It consistently achieves high throughput - swallow more than 120k records or 80k complicated queries per second with confidence.

Get tiedot!

tiedot is distributed under the Simplified BSD license.

The newest version 3.4 comes with general performance and compatibility improvements. Find out more in releases.

Running in Docker

Run tiedot with help from docker and docker compose:

$ docker-compose build
$ docker-compose up -d

To view the logs:

$ docker-compose logs

References

... and more

Contributions welcome!

tiedot is a very small project in the large open source community - it is growing fast thanks to the 800+ stars and watchers, as well as many contributors for their feedback, comments, ideas and code. Your contribution matters a lot!

Pull requests/forks all welcome, and please share your thoughts, questions and feature requests in Issues section.

Let me know what you think about tiedot, I'd love to hear from you! Please Email me, follow my Twitter and blog.

The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/). The Go gopher is covered by the Creative Commons Attribution 3.0 license.

Releases

3.4

May 3, 2017

Download .zip

This is a maintenance release to fix various build issues discovered on ARM and Windows platforms, together with general performance improvements.

3.2

Feb 11, 2015

3.2 (2015-02-12)

Download .zip

Bug fix:

tiedot performs poorly on certain OS/FS combinations, this is due to the sparse file unintentionally created by Truncate operation, which is now fixed.

New experimental feature:

Javascript...

Dec 1, 2014

3.1.3 (2014-12-01)

Download .zip

Sorry - I messed up a file in 3.1.2. This release fixes it.

Dec 1, 2014

3.1.2 (2014-12-01)

Download .zip

Improved RPM spec and systemd unit file to properly build on Open Build Service.

Oct 18, 2014

3.1.1 (2014-10-18)

Download .zip

Error handling is easier in embedded usage, see example.go for more details. Fix a bug which causes query processor to return incorrect intersection/complement result.