{"id":13502845,"url":"https://github.com/skytable/skytable","last_synced_at":"2025-05-14T05:10:31.621Z","repository":{"id":37390414,"uuid":"276042304","full_name":"skytable/skytable","owner":"skytable","description":"Skytable is a modern scalable NoSQL database with BlueQL, designed for performance, scalability and flexibility. Skytable gives you spaces, models, data types, complex collections and more to build powerful experiences","archived":false,"fork":false,"pushed_at":"2025-04-10T14:36:15.000Z","size":6729,"stargazers_count":2545,"open_issues_count":30,"forks_count":90,"subscribers_count":28,"default_branch":"next","last_synced_at":"2025-05-06T12:12:53.826Z","etag":null,"topics":["beginner-friendly","column-store","contributions-welcome","database","database-engine","database-server","databases","dbms","distributed-database","document-database","json","key-value-store","multi-model","nosql","nosql-database","rust","skybase","skytable","sql","terrabasedb"],"latest_commit_sha":null,"homepage":"https://skytable.io","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skytable.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-06-30T08:31:09.000Z","updated_at":"2025-05-05T22:52:24.000Z","dependencies_parsed_at":"2023-12-25T07:31:31.152Z","dependency_job_id":"af1731e4-92c7-4228-8598-7b5ef7435a2c","html_url":"https://github.com/skytable/skytable","commit_stats":{"total_commits":1704,"total_committers":9,"mean_commits":"189.33333333333334","dds":"0.028169014084507005","last_synced_commit":"f83e6bf5f620e28482d1266db7be8338213b5ae7"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skytable%2Fskytable","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skytable%2Fskytable/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skytable%2Fskytable/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skytable%2Fskytable/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skytable","download_url":"https://codeload.github.com/skytable/skytable/tar.gz/refs/heads/next","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253021011,"owners_count":21841672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beginner-friendly","column-store","contributions-welcome","database","database-engine","database-server","databases","dbms","distributed-database","document-database","json","key-value-store","multi-model","nosql","nosql-database","rust","skybase","skytable","sql","terrabasedb"],"created_at":"2024-07-31T22:02:26.847Z","updated_at":"2025-05-14T05:10:31.572Z","avatar_url":"https://github.com/skytable.png","language":"Rust","readme":"# Skytable \u003cimg align=\"right\" src=\"assets/logo.jpg\" height=\"128\" width=\"128\" alt=\"Skytable Logo\"/\u003e\n\nA modern NoSQL database, powered by BlueQL.\u003cbr/\u003e\n\n\u003cp\u003e\n\u003ca href=\"https://github.com/skytable/skytable/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/skytable/skytable?style=flat\" alt=\"GitHub release (with filter)\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/skytable/skytable/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/skytable/skytable/test-push.yml?style=flat\" alt=\"GitHub Workflow Status (with event)\"\u003e\u003c/a\u003e \u003ca href=\"https://discord.gg/QptWFdx\"\u003e\u003cimg src=\"https://img.shields.io/discord/729378001023926282?logo=discord\u0026style=flat\" alt=\"Discord\"\u003e\u003c/a\u003e \u003ca href=\"https://docs.skytable.io\"\u003e\u003cimg src=\"https://img.shields.io/badge/read%20the%20docs-here-blue?style=flat\" alt=\"Docs\"\u003e\u003c/a\u003e \u003ca href=\"https://github.com/skytable/skytable/discussions?style=flat\"\u003e\u003cimg src=\"https://img.shields.io/badge/discuss-here-8A3324?style=flat\u0026logo=github\u0026labelColor=C34723\" alt=\"Static Badge\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## What is Skytable?\n\nSkytable is a **NoSQL database** implemented using modern design paradigms, that focuses on **performance, flexibility, and scalability**.\n\nSkytable is primarily in-memory, uses multithreaded asynchronous I/O and a custom AOF-based storage engine with advanced delayed durability transactions for efficient disk I/O. Skytable's data model is based on a column-oriented structure with support for additional data models\u003csup\u003e(WIP)\u003c/sup\u003e. Querying is done using BlueQL, a SQL-based query language hardened against injection attacks, written specifically for Skytable.\n\nSkytable is best-suited for applications that need to store large-scale data, need high-performance and low latencies.\n\n\u003e **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).**\n\n## Features\n\n- **Spaces, models and more**: For flexible data definition\n- **Powerful querying with BlueQL**: A modern query language based on SQL\n- **Rich data modeling**: Use `model`s to define data with complex types, collections and more\n- **Performant**: Optimized multithreaded network I/O, write batching and several other optimizations\n- **Secure**: Injection deterrence using BlueQL and other memory safety measures\n- **Enforces best practices**: If you're building with Skytable today, the practices you'll get used to here will let you easily take on the job of building performant systems, even outside Skytable\n\n\u003e Learn more about [Skytable's features here](https://docs.skytable.io).\n\n## Getting started\n\n1. **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.\n2. Start the database server: `./skyd --auth-root-password \u003cpassword\u003e` 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.\n3. Start the interactive client REPL: `./skysh` and then enter your password.\n4. Your setup is now complete.\n\n\u003e **For a more detailed guide on installation and deployment, [follow the guide here.](https://docs.skytable.io/installation)**\n\n## Using Skytable\n\nSkytable has `SPACE`s instead of `DATABASE`s due to signficant operational differences (and because `SPACE`s store a lot more than tabular data).\n\n**With the REPL started, follow this guide**:\n\n1. Create a `space` and switch to it:\n\n   ```sql\n   CREATE SPACE myspace\n   USE myspace\n   ```\n\n2. Create a `model`:\n\n   ```sql\n   CREATE MODEL myspace.mymodel(username: string, password: string, notes: list { type: string })\n   ```\n\n   The rough representation for this in Rust would be:\n\n   ```rust\n   pub struct MyModel {\n    username: String,\n    password: String,\n    notes: Vec\u003cString\u003e,\n   }\n   ```\n\n3. `INSERT` some data:\n\n   ```sql\n   INSERT INTO mymodel('sayan', 'pass123', [])\n   ```\n\n4. `UPDATE` some data:\n\n   ```sql\n   UPDATE mymodel SET notes += \"my first note\" WHERE username = 'sayan'\n   ```\n\n5. `SELECT` some data\n\n   ```sql\n   SELECT * FROM mymodel WHERE username = 'sayan'\n   ```\n\n6. Modify and run your own queries to understand how things work. **And then make sure you [read the documentation learn BlueQL](https://docs.skytable.io/blueql/overview).**\n\n\u003e **For a complete guide on Skytable, it's architecture, BlueQL, queries and more we strongly recommend you to [read the documentation here.](https://docs.skytable.io)**\n\u003e\n\u003e 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)\n\n## Find a client driver\n\nYou 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.\n\nUsing the Rust client driver, it's very straightforward to run queries thanks to Rust's powerful type system and macros:\n\n```rust\nuse skytable::{Config, query};\n\nfn main() {\n    let mut db = Config::new_default(\"username\", \"password\").connect().unwrap();\n    let query = query!(\"select username, password from myspace.mymodel where username = ?\", \"sayan\");\n    let (username, password): (String, Vec\u003cu8\u003e) = db.query_parse(\u0026query).unwrap();\n    // do something with it\n}\n```\n\n\u003e **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: \u003chey@skytable.io\u003e or leave a message on our Discord server.**\n\n## Getting help\n\nWe 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.\n\n## Contributing\n\nPlease read the [contributing guide here](./CONTRIBUTING.md).\n\n## Acknowledgements\n\nPlease read the [acknowledgements](./ACKNOWLEDGEMENTS.txt) document.\n\n## License\n\nSkytable is distributed under the [AGPL-3.0 License](./LICENSE). **You may not use Skytable's logo for other projects.**\n","funding_links":[],"categories":["Rust","Applications","应用程序 Applications","beginner-friendly","软件"],"sub_categories":["Database","Databases","数据库 Database"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskytable%2Fskytable","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskytable%2Fskytable","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskytable%2Fskytable/lists"}