/shardingsphere

Build criterion and ecosystem above multi-model databases

Primary LanguageJavaApache License 2.0Apache-2.0

Official Website: https://shardingsphere.apache.org/

License GitHub release Build Status codecov snyk Maintainability OpenTracing-1.0 Badge Skywalking Tracing

Twitter Slack Gitter

Stargazers Over Time Contributors Over Time
Stargazers over time Contributor over time

ShardingSphere Overview

Apache ShardingSphere is positioned as a Database Plus, and aims at building a new criterion and ecosystem above multi-model databases. It focuses on how to reuse existing databases and their respective upper layer, rather than creating a new database.

The concepts at the core of the project are Link, Enhance and Pluggable.

  • Link: Flexible adaptation of database protocol, SQL dialect and database storage. It can quickly link applications and multi-mode heterogeneous databases quickly.
  • 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 flexibily. Developers can customize their ShardingSphere just like building with LEGO blocks.

ShardingSphere became an Apache Top-Level Project on April 16, 2020.

Documentation:

EN doc CN doc

For full documentation & more details, visit: https://shardingsphere.apache.org/document/current/en/overview/

Contribution:

For guides on how to get started and setup your environment, contributor & committer guides, visit: https://shardingsphere.apache.org/community/en/contribute/

Community & Support:

🔗 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.

Status:

✅ Version 5.0.0-beta: released, stable enough & anyone can sign up 🎉

🔜 Version 5.0.0-RC1

We are currently working towards our 5.0.0-RC1 milestone. Keep an eye on the milestones page of this repo to stay up to date.

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.

ShardingSphere-JDBC

Maven Status

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.

ShardingSphere-Proxy

Download Docker Pulls

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.

🔗 For more details, follow this link to the official website.

Hybrid Architecture

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.

🔗 More details can be found following this link to the official website.

Solution

Solutions/Features Distributed Database Data Security Database Gateway Stress Testing
Data Sharding Data Encrypt Multi-model 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)
Highly Available

Roadmap

Roadmap

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.

Landscapes



  

Apache ShardingSphere enriches the CNCF CLOUD NATIVE Landscape.