GithubHelp home page GithubHelp logo

fujiwaratakumi / shardingsphere Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apache/shardingsphere

0.0 0.0 0.0 445.38 MB

Distributed database middleware

License: Apache License 2.0

Java 95.76% Shell 0.16% Batchfile 0.02% Dockerfile 0.05% ANTLR 4.02%

shardingsphere's Introduction

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

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

Twitter Slack Gitter

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

ShardingSphere Overview

Apache ShardingSphere follows Database Plus - our community's guiding development concept for creating a complete ecosystem that allows you to transform any database into a distributed database system, and easily enhance it with sharding, elastic scaling, data encryption features & more.

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.

Virtually all databases are supported including MySQL, PostgreSQL, SQL Server, Oracle Database, MariaDB or any other SQL-92 database.

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

Documentation:

EN doc CN doc

For full documentation & more details, visit: Docs

Contribution:

For guides on how to get started and setup your environment, contributor & committer guides, visit: Contribution Guidelines

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.1.0: released ๐ŸŽ‰

๐Ÿ”— For the release notes, follow this link to the relevant GitHub page.

๐Ÿ”œ Version 5.1.1

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

Nightly Builds:

A nightly build of ShardingSphere from the latest master branch is available. The package is updated daily and is available here.

โ€ผ๏ธ Notice:

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.

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

shardingsphere's People

Contributors

avalon566 avatar beckhampu avatar cherrylzhao avatar codefairy08 avatar dongzl avatar hanahmily avatar haocao avatar jiekertime avatar jingshanglu avatar kimmking avatar komachision avatar lanchengx avatar lucas-307 avatar maxiaoguang64 avatar menghaoranss avatar raigorjiang avatar saaavsaaa avatar sandynz avatar strongduanmu avatar terrymanu avatar teslacn avatar totalo avatar tristazero avatar tuichenchuxin avatar tuohai666 avatar wgy8283335 avatar wqzwh avatar yu199195 avatar yx9o avatar zhaojinchao95 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.