Firstly, thank you for your interest in contributing to this project. This project is powered by the community
and relies on hackers across the globe to contribute code to move this project forward.
Firstly, thank you ❤️ for your interest in contributing to this project! This project is powered by the community
and relies on hackers across the globe 🌐 to report bugs, send suggestions 💡 and contribute code to move this project forward ⏩.
You can see a list of contributors **[here](./CONTRIBUTORS.md)**
## Coding guidelines
## Ways to contribute
* **#1**: Report bugs 🐞
* **#2**: Give us ideas 💡
* **#3**: Send patches
## Coding guidelines 👩💻 👨💻
### Conventions
@ -26,6 +32,7 @@ The project root has three main directories:
* `server` : This contains code for the main database server
### Branches
The `next` branch is the _kind of_ stable branch which contains the latest changes. However, for most purposes, you should always download the sources from the tags. Usually, when a feature is worked on, the work will be done on a separate branch, and then it will be merged into next.
TerrabaseDB (or TDB for short) is an effort to provide the best of key/value stores, document stores and columnar databases - **simplicity, flexibility and queryability at scale**. This project is currently in a <b>pre-alpha</b> stage and is undergoing rapid development.
TerrabaseDB (or TDB for short) is an effort to provide the best of key/value stores, document stores and columnar databases, that is, **simplicity, flexibility and queryability at scale**. TDB is curently in a pre-alpha stage, but can be used as a **performant** and **persistent key-value store**.
## Status
## Getting started
**Currently**, TDB is a **persistent key/value store**.
As noted earlier, TerrabaseDB is pre-alpha software and the entire API is subject to major breaking changes, at the moment.
1. Download a bundle for your platform from [here ⬇️ ](https://github.com/terrabasedb/terrabase/releases)
2. Unzip the bundle
3. Make the files executable (run `chmod +x tdb tsh` on *nix systems)
4. Run commands like: `SET foo bar` , `GET bar` , `UPDATE cat mitten` or `DEL proprietary` 🤪 on `tsh` !
We're officially working on a [Python Driver](https://github.com/terrabasedb/python-driver) and we plan to support more languages along the way 🎉! You're free to write your own clients - all you need to do is implement the simple and performant [Terrapipe protocol spec](https://git.io/JJZ4Z).
## Getting started
We have experimental client and server implementations for the database already.
The releases are uploaded in bundles, for example, `tdb-bundle-v0.2.0-x86_64-unknown-linux-gnu.zip` . Each bundle contains `tdb` and `tsh` , that is, the database server and the client command-line tool.
## Community 👐
* Download a bundle for your platform from [releases](https://github.com/terrabasedb/terrabase/releases)
* Unzip the downloaded bundle
* Make the files executable (run `chmod +x tdb tsh` on Unix systems)
* Start the database server by running `./tdb`
* Start the client by running `./tsh`
* You can run commands like `SET sayan 17` , `GET cat` , `UPDATE cat 100` or `DEL cat` !
A project which is powered by the community believes in the power of community! If you get stuck anywhere - here are your options!
This project strictly follows semver, however, since this project is currently in the development phase (0.x.y), the API may change unpredictably
## Contributing
**Yes!** - this project **needs you**! We want hackers, like you, from all across the globe to help us create the next-generation database. Read the guide [here](./CONTRIBUTING.md).
## Community
A project which is powered by the community believes in the power of community!
**Yes - we need you!** Be it a typo, a bizarre idea, a dirty bug🐞 or an amazing patch - you're welcome to contribute to TDB! Beginner friendly issues are marked with the <html>
<svgxmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"width="49"height="20"role="img"aria-label="easyfix"><title>easyfix</title><linearGradientid="s"x2="0"y2="100%"><stopoffset="0"stop-color="#bbb"stop-opacity=".1"/><stopoffset="1"stop-opacity=".1"/></linearGradient><clipPathid="r"><rectwidth="49"height="20"rx="3"fill="#fff"/></clipPath><gclip-path="url(#r)"><rectwidth="0"height="20"fill="#c71585"/><rectx="0"width="49"height="20"fill="#c71585"/><rectwidth="49"height="20"fill="url(#s)"/></g><gfill="#fff"text-anchor="middle"font-family="Verdana, Geneva, DejaVu Sans, sans-serif"text-rendering="geometricPrecision"font-size="110"><textaria-hidden="true"x="245"y="150"fill="#010101"fill-opacity=".3"transform="scale(.1)"textLength="390">easyfix</text><textx="245"y="140"transform="scale(.1)"fill="#fff"textLength="390">easyfix</text></g></svg></html> label. Read the guide [here](./CONTRIBUTING.md).