diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 82c3dda5..84a130b9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,7 +34,9 @@ In other cases, use the C style. use serde::{Serialize, Deserialize}; use crate::something; ``` + this mode of styling is preferred: + ```rust use { devtimer::{SimpleTimer, ComplexTimer}, @@ -47,25 +49,27 @@ In other cases, use the C style. The main parts (ignorning CI scripts, stress test suite, test harness and custom compiler macros) are: -- `cli`: REPL shell -- `server`: database server +- `cli`: interactive shell `skysh` +- `server`: server daemon `skyd` - `sky-bench`: benchmark tool +The `pkg` folder contains scripts used to build packages for different targets. The `examples` folder +contains example configuration files. + ### Branches The `next` branch is the _kind of_ stable branch which contains the latest changes. However, for most purposes, you should always download sources from the tags. -Pushes are made directly -to next if they don't change things significantly; for example, changes in documentation comments and general optimizations. If -however the changes are huge, then they must be created on a separate branch, a pull request opened, the CI suite run and -finally merged into next. +Pushes are made directly to next if they don't change things significantly; for example, changes in +documentation comments and general optimizations. If however the changes are huge, then they must be created +on a separate branch, a pull request opened, the CI suite run and finally merged into next. ## Pull request guidelines ### Typo correction or doc updates -The creation of superflous merge requests is generally discouraged. Such examples include the creation of multiple -PRs to correct single typos, update comments or update docs. +The creation of superflous merge requests is generally discouraged. Such examples include the creation of +multiple PRs to correct single typos, update comments or update docs. It would be far better if you could fix a considerable subset (if not all) of these issues in one pull request (it's fine to create multiple commits in the same PR). This is because we don't want to utilize compute capacity or multiply our git history for changes @@ -87,6 +91,9 @@ Skytable uses a Makefile for builds and running the test suite along with a numb 1. Install the latest Rust toolchain (stable) 2. Install a C Compiler, Make, Perl and the libssl-dev package on platforms where they are required +3. On Windows: + - You might need to perform additional steps to add `perl` to our `PATH` variable + - You may also need to set up powershell if it isn't set up already as it is used by the test script **Building** diff --git a/README.md b/README.md index e30f7d33..716e5f6b 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,10 @@ -

- -

-

- Skytable — A modern database for building powerful experiences -

-

- Performance, scalability, and flexibility. Choose three. -

-

-

+# Skytable Skytable Logo +A modern NoSQL database, powered by BlueQL.
+

GitHub release (with filter) GitHub Workflow Status (with event) Discord Docs Static Badge

-## 💡 What is Skytable? +## What is Skytable? Skytable is a **modern NoSQL database** that focuses on **performance, flexibility and scalability**. Skytable is a primarily in-memory, wide-column based database with support for additional data models* that @@ -25,7 +17,7 @@ latencies. > **You can read more about Skytable's architecture, including information on the clustering and HA implementation that we're currently working on, and limitations [on this page](https://docs.skytable.io/architecture).** -## 🎨 Features +## Features - **Spaces, models and more**: For flexible data definition - **Powerful querying with BlueQL**: A modern query language based on SQL @@ -36,7 +28,7 @@ latencies. > Learn more about [Skytable's features here](https://docs.skytable.io). -## 🚀 Getting started +## Getting started 1. **Set up Skytable on your machine**: You'll need to download a bundled release file [from the releases page](https://github.com/skytable/skytable/releases). Unzip the files and you're ready to go. 2. Start the database server: `./skyd --auth-root-password ` with your choice of a password for the `root` account. The `root` account is just like a `root` account on Unix based systems that has control over everything. @@ -46,7 +38,7 @@ latencies. > **For a more detailed guide on installation and deployment, [follow the guide here.](https://docs.skytable.io/installation)** -## ⚡ Using Skytable +## Using Skytable Skytable has `SPACE`s instead of `DATABASE`s due to signficant operational differences (and because `SPACE`s store a lot more than tabular data). @@ -87,7 +79,7 @@ Skytable has `SPACE`s instead of `DATABASE`s due to signficant operational diffe > > While you're seeing strings and other values being used here, this is so because the REPL client smartly parameterizes queries behind the scenes. **BlueQL has mandatory parameterization**. (See below to see how the Rust client handles this) -## 🧩 Find a client driver +## Find a client driver You need a client driver to use Skytable in your programs. Officially, we maintain a regularly updated [Rust client driver](https://github.com/skytable/client-rust) which is liberally license under the Apache-2.0 license so that you can use it anywhere. @@ -106,7 +98,7 @@ fn main() { > **You can find more information on client drivers on [this page](https://docs.skytable.io/libraries). If you want to help write a client driver for your language of choice, *we're here to support your work*. Please reach out to: hey@skytable.io or leave a message on our Discord server!** -## 🙋 Getting help +## Getting help We exclusively use [Discord](https://discord.gg/QptWFdx) for most real-time communications — you can chat with developers, maintainers, and our amazing users! Outside that, we recommend that you use our [GitHub Discussions page](https://github.com/skytable/skytable/discussions) for any questions or open a new issue if you think you've found a bug.