Distributed SQL transaction & query engine for data sharding, scaling, encryption, and more - on any database.
Official Website: https://shardingsphere.apache.org/
Stargazers Over Time | Contributors Over Time |
---|---|
Apache ShardingSphere is a distributed SQL transaction & query engine that allows for data sharding, scaling, encryption, and more - on any database. Our community's guiding development concept is Database Plus for creating a complete ecosystem that allows you to transform any database into a distributed database system.
It focuses on repurposing existing databases, by placing a standardized upper layer above existing and fragmented databases, rather than creating a new database.
The goal is to provide unified database services and minimize or eliminate the challenges caused by underlying databases' fragmentation. This results in applications only needing to communicate with a single standardized service.
The concepts at the core of the project are Connect
, Enhance
and Pluggable
.
Connect:
Flexible adaptation of database protocol, SQL dialect and database storage. It can quickly connect applications and heterogeneous databases.Enhance:
Capture database access entry to provide additional features transparently, such as: redirect (sharding, readwrite-splitting and shadow), transform (data encrypt and mask), authentication (security, audit and authority), governance (circuit breaker and access limitation and analyze, QoS and observability).Pluggable:
Leveraging the micro kernel and 3 layers pluggable mode, features and database ecosystem can be embedded flexibly. Developers can customize their ShardingSphere just like building with LEGO blocks.
ShardingSphere became an Apache Top-Level Project on April 16, 2020.
So far, ShardingSphere has been used by over 10,000 projects on GitHub.
For full documentation & more details, visit: Docs
For guides on how to get started and setup your environment, contributor & committer guides, visit: Contribution Guidelines
We deeply appreciate community contributors for their dedication to Apache ShardingSphere.
🔗 Mailing List. Best for: Apache community updates, releases, changes.
🔗 GitHub Issues. Best for: larger systemic questions/bug reports or anything development related.
🔗 GitHub Discussions. Best for: technical questions & support, requesting new features, proposing new features.
🔗 Slack channel. Best for: instant communications and online meetings, sharing your applications.
🔗 Twitter. Best for: keeping up to date on everything ShardingSphere.
🔗 LinkedIn. Best for: professional networking and career development with other ShardingSphere contributors.
✅ Version 5.4.1: released 🎉
🔗 For the release notes, follow this link to the relevant GitHub page.
🔜 Version 5.4.2
We are currently working towards our 5.4.2 milestone. Keep an eye on the milestones page of this repo to stay up to date.
Apache ShardingSphere includes 2 independent products: JDBC & Proxy. They all provide functions of data scale-out, distributed transaction and distributed governance, applicable in a variety of situations such as Java-based isomorphism, heterogeneous language and Cloud-Native.
A lightweight Java framework providing extra services at the Java JDBC layer. With the client end connecting directly to the database, it provides services in the form of a jar and requires no extra deployment and dependence.
🔗 For more details, follow this link to the official website.
A transparent database proxy, providing a database server that encapsulates the database binary protocol to support heterogeneous languages. Friendlier to DBAs, the MySQL and PostgreSQL version now provided can use any kind of terminal.
🔗 For more details, follow this link to the official website.
ShardingSphere-JDBC adopts a decentralized architecture, applicable to high-performance light-weight OLTP applications developed with Java. ShardingSphere-Proxy provides static entry and all languages support, suitable for an OLAP application and sharding databases management and operation.
Through the combination of ShardingSphere-JDBC & ShardingSphere-Proxy together with a unified sharding strategy by the same registry center, the ShardingSphere ecosystem can build an application system suitable to all kinds of scenarios.
🔗 More details can be found following this link to the official website.
Solutions/Features | Distributed Database | Data Security | Database Gateway | Stress Testing |
---|---|---|---|---|
Data Sharding | Data Encryption | Heterogeneous Databases Supported | Shadow Database | |
Read/write Splitting | Row Authority (TODO) | SQL Dialect Translate (TODO) | Observability | |
Distributed Transaction | SQL Audit (TODO) | |||
Elastic Scale-out | SQL Firewall (TODO) | |||
High Availability |
Check out Wiki section for details on how to build Apache ShardingSphere and a full guide on how to get started and setup your local dev environment.
Apache ShardingSphere enriches the CNCF CLOUD NATIVE Landscape.