yugabyte/yugabyte-db
The high-performance distributed SQL database for global, internet-scale apps.
repo name | yugabyte/yugabyte-db |
repo link | https://github.com/yugabyte/yugabyte-db |
homepage | https://www.yugabyte.com |
language | C |
size (curr.) | 168651 kB |
stars (curr.) | 3638 |
created | 2017-10-05 |
license | Other |
What is YugabyteDB?
YugabyteDB is a high-performance, cloud-native distributed SQL database. Here are its salient points:
- Has a pluggable query layer, and supports two distributed SQL APIs:
- Yugabyte SQL (YSQL) - PostgreSQL-compatible fully relational API
- Yugabyte Cloud QL (YCQL) - Semi-relational SQL-like API with documents/indexing support and Apache Cassandra QL roots
- Automated sharding, Raft consensus replication and distributed transactions, based on the Google Spanner architecture
- Offers horizontal write scalability, strong write consistency and tunable read consistency (strong reads by default with follower & observer reads as options)
- Extremely resilient with native failover and repair - can tolerate disk, node, zone and region failures automatically
- Supports geo-distributed deployments (multi-zone, multi-region, multi-cloud)
- Built-in enterprise features such as distributed backups, in-flight/at-rest encryption and read replicas (for observer reads)
- Can be deployed in public clouds and natively inside Kubernetes
- Best fit for powering massively-scalable, globally-distributed, cloud-native applications that require absolute data correctness and high tolerance to failures
- 100% open source under the Apache 2.0 license
Read more about YugabyteDB in our Docs.
Get Started
- Install YugabyteDB
- Create a local cluster
- Connect and try out SQL commands
- Build an app using a PostgreSQL-compatible driver or ORM.
- Try a real-world app:
Cannot find what you are looking for? Have a question? Please post your questions or comments on our Community Slack or Forum.
Build Apps
YugabyteDB supports a number of languages and client drivers. Below is a brief list.
Language | ORM | YSQL Drivers | YCQL Drivers |
---|---|---|---|
Java | Spring/Hibernate | PostgreSQL JDBC | cassandra-driver-core-yb |
Go | Gorm | pq | gocql |
NodeJS | Sequelize | pg | cassandra-driver |
Python | SQLAlchemy | psycopg2 | yb-cassandra-driver |
Ruby | ActiveRecord | pg | yugabyte-ycql-driver |
C# | EntityFramework | npgsql | CassandraCSharpDriver |
C++ | Not tested | libpqxx | cassandra-cpp-driver |
C | Not tested | libpq | Not tested |
Architecture
Review detailed architecture in our Docs.
Need Help?
-
You can ask questions, find answers, help others on our Community Slack and Forum as well as Stack Overflow
-
Please use GitHub issues to report issues.
Contribute
As an open source project with a strong focus on the user community, we welcome contributions as GitHub pull requests. See our Contributor Guides to get going. Discussions and RFCs for features happen on the design discussions section of our Forum.
License
Source code in this repository is variously licensed under the Apache License 2.0 and the Polyform Free Trial License 1.0.0. A copy of each license can be found in the licenses directory.
The build produces two sets of binaries:
- The entire database with all its features (including the enterprise ones) are licensed under the Apache License 2.0
- The binaries that contain
-managed
in the artifact and help run a managed service are licensed under the Polyform Free Trial License 1.0.0.
By default, the build options generate only the Apache License 2.0 binaries.
Read More
- To see our updates, go to The Distributed SQL Blog.
- See how YugabyteDB compares with other databases.