Official Website: https://shardingsphere.apache.org/
|Stargazers Over Time||Contributors Over Time|
Apache ShardingSphere is positioned as a Database Plus, and aims at building a standard layer and ecosystem above heterogeneous databases. It focuses on how to reuse existing databases and their respective upper layer, rather than creating a new database. The goal is to minimize or eliminate the challenges caused by underlying databases fragmentation.
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.
For full documentation & more details, visit: Docs
For guides on how to get started and setup your environment, contributor & committer guides, visit: Contribution Guidelines
Community & Support:
We are currently working towards our 5.0.1 milestone. Keep an eye on the milestones page of this repo to stay up to date.
A nightly build of ShardingSphere from the latest master branch is available. The package is updated daily and is available here.
Use this nightly build at your own risk! The branch is not always fully tested. The nightly build may contain bugs, and there may be new features added which may cause problems with your environment.
How it Works:
Apache ShardingSphere includes 3 independent products: JDBC, Proxy & Sidecar (Planning). They all provide functions of data scale-out, distributed transaction and distributed governance, applicable in a variety of situations such as Java 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.
A transparent database proxy, providing a database server that encapsulates database binary protocol to support heterogeneous languages. Friendlier to DBAs, the MySQL and PostgreSQL version now provided can use any kind of terminal.
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 OLAP application and sharding databases management and operation.
Through the mixed use 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.
|Solutions/Features||Distributed Database||Data Security||Database Gateway||Stress Testing|
|Data Sharding||Data Encrypt||Heterogeneous Databases Supported||Shadow Database|
|Readwrite-splitting||Row Authority (TODO)||SQL Dialect Translate (TODO)||Observability|
|Distributed Transaction||SQL Audit (TODO)|
|Elastic Scale-out||SQL Firewall (TODO)|
How to Build Apache ShardingSphere:
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.
Building a Standard Layer & Ecosystem Above Heterogeneous Databases
- Java 95.7 %
- ANTLR 4.1 %
- Shell 0.2 %
- Dockerfile 0.1 %
- Batchfile 0.0 %