GithubHelp home page GithubHelp logo

huanshi / tiedot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from houzuoguo/tiedot

0.0 4.0 0.0 4 MB

Your NoSQL database powered by Golang

License: BSD 2-Clause "Simplified" License

Go 82.15% Python 3.04% JavaScript 14.31% CSS 0.50%

tiedot's Introduction

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

Golang logo

tiedot - Your NoSQL database powered by Golang

Build Status

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 on most *nix operating systems.

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

Did you know? The largest known tiedot deployment powers an offline Wikipedia indexing project, it has 5.9 million documents and over 73GB of data.

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 love to hear from you! Please Email me, follow my Twitter and blog.

References

... and more

Get tiedot!

tiedot is distributed under the Simplified BSD license.

The newest version 3.0 (branch 3.0) is a complete re-write aiming to bring a much cleaner codebase. Please check out Version History for change logs and historical version information.

Project Story

Go is a fascinating language and it has attracted a lot of attention in the open source community over the past few years. But as a young programming language, there was a lack of database engine options for back-end development. As we all know, the design of Go was heavily inspired by C language, and there is sqlite for C - so I thought what about a making DB engine easily embeddable for Go programs?

Then tiedot was born - the name "tiedot" is a cute Finnish word meaning "data". Initially being a programming exercise, tiedot greatly helped me exploring the performance characteristics of Go.

Thanks to the very welcoming and helpful community of Go - when tiedot made its first release, a lot of people contributed feature ideas and suggestions pushing the project well beyond its initial goal. Till this day tiedot has been used in data analysis, embedded systems, utility applications, web applications, and some people also find it useful being a demo of several DB engine mechanisms.

I love Go because it offers stable and predictable performance characteristics, very fast compilation speed and a complete toolchain for all development activities. And unlike many other languages, Go does not require an intelligent IDE to improve productivity of users - many of which find a syntax-highlighted text editor to be sufficient for coding Go!

There are several other data structure servers/DB engines written in Go, namely "etcd", "leveldb-go" and "ql"; they emphasis on different usage scenarios, for example "etcd" is a data structure server designed for configuration management and service discovery, "leveldb-go" is a re-implementation of popular LevelDB in Go, and "ql" is an embeddable DB engine providing SQL capability. After all, when it comes to choosing a general purpose, embeddable NoSQL database engine, tiedot is perhaps the only choice so far (as far as I know).

tiedot's People

Contributors

houzuoguo avatar davesters avatar noahshen avatar smartrevolution avatar 2pi avatar bnyeggen avatar nickpresta avatar algebraic-brain avatar anzhihun avatar

Watchers

James Cloos avatar  avatar  avatar caocao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.