<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta name="description" content="ShardingSphere official website" />
  <meta name="Keywords"
    content="ShardingSphere,Sharding-JDBC,Sharding-Proxy,Sharding-Sidecar,ShardingSphere-JDBC,ShardingSphere-Proxy,Database,Middleware,Distribute" />
  <title>ShardingSphere</title>
  <script>
    if (
      !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
        navigator.userAgent
      )
    ) {
      window.location = 'index.html'
    }
  </script>
  <script>
    var idealViewWidth = window.screen.width;
    var basicValue = 750;
    document.documentElement.style.fontSize = (idealViewWidth / basicValue) * 100 + 'px';
  </script>
  <link rel="icon" href="https://shardingsphere.apache.org/images/favicon.png" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" href="https://shardingsphere.apache.org/css/index_m.css" />
  <!-- <link rel="stylesheet" type="text/css" href="/css/index_m.css" /> -->
  <!-- Effect of carousel -->
  <link rel="stylesheet" href="/css/swiper.min.css">
  <script src="/js/swiper.min.js"> </script>
</head>

<body>
  <header>
    <div class="bg-left">
      <div class="bg-right">
        <nav class="display-flex space-between">
          <div class="nav-logo">
            <img class="nav-img first" src="https://shardingsphere.apache.org/images/apache_logo1.png" alt="" />
            <img class="nav-img" src="https://shardingsphere.apache.org/images/apache_logo2.png" alt="" />
          </div>
          <div class="nav-btn" id="nav-btn"></div>
        </nav>
        <div class="nav-menu" id="nav-menu">
          <div class="nav-item space">
            <a href="https://shardingsphere.apache.org/document/current/en/downloads/" target="_blank">Download</a>
          </div>
          <div class="nav-item">
            <div id="btn-document" class="i-drop-btn">Document</div>
          </div>
          <div class="i-drop-pop">
            <a class="i-drop-list" href="https://shardingsphere.apache.org/document/current/en/overview"
              target="_blank">5.x(Current)</a>
            <a class="i-drop-list" href="https://shardingsphere.apache.org/document/legacy/4.x/document/en/overview"
              target="_blank">4.x(Legacy)</a>
            <a class="i-drop-list" href="https://shardingsphere.apache.org/document/legacy/3.x/document/en/overview"
              target="_blank">3.x(Legacy)</a>
            <a class="i-drop-list" href="https://shardingsphere.apache.org/document/legacy/2.x/cn/"
              target="_blank">2.x(Legacy)</a>
          </div>
          <div class="nav-item">
            <div id="btn-subproject" class="i-drop-btn">Subproject</div>
          </div>
          <div class="i-drop-pop">
            <a class="i-drop-list" href="http://shardingsphere.apache.org/elasticjob/" target="_blank">ElasticJob</a>
          </div>
          <div class="nav-item">
            <div id="btn-community" class="i-drop-btn">Community</div>
          </div>
          <div class="i-drop-pop">
            <a class="i-drop-list" href="https://shardingsphere.apache.org/community/en/contribute/"
              target="_blank">Contribution</a>
            <a class="i-drop-list" href="https://shardingsphere.apache.org/community/en/team/" target="_blank">Team</a>
            <a class="i-drop-list" href="https://cwiki.apache.org/confluence/display/SHARDINGSPHERE"
              target="_blank">Wiki</a>
            <a class="i-drop-list" href="https://github.com/apache/shardingsphere" target="_blank">GitHub</a>
            <a class="i-drop-list" href="https://github.com/apache/shardingsphere/issues" target="_blank">Issue
              Tracker</a>
            <a class="i-drop-list" href="https://shardingsphere.apache.org/community/en/powered-by/"
              target="_blank">Powered By</a>
          </div>
          <div class="nav-item">
            <div id="btn-blog" class="i-drop-btn">Blog</div>
          </div>
          <div class="i-drop-pop">
            <a class="i-drop-list" href="https://shardingsphere.apache.org/blog/en/material"
              target="_blank">Selections</a>
            <a class="i-drop-list" href="https://github.com/apache/shardingsphere/issues/650"
              target="_blank">Collections</a>
          </div>
          <div class="nav-item">
            <div id="btn-asf" class="i-drop-btn">ASF</div>
          </div>
          <div class="i-drop-pop">
            <a class="i-drop-list" href="https://www.apache.org" target="_self">Foundation</a>
            <a class="i-drop-list" href="https://www.apache.org/licenses/" target="_self">License</a>
            <a class="i-drop-list" href="https://www.apache.org/events/current-event" target="_self">Events</a>
            <a class="i-drop-list" href="https://www.apache.org/security/" target="_self">Security</a>
            <a class="i-drop-list" href="https://www.apache.org/foundation/sponsorship.html"
              target="_self">Sponsorship</a>
            <a class="i-drop-list" href="https://www.apache.org/foundation/thanks.html" target="_self">Thanks</a>
            <em class="i-drop-line"></em>
          </div>
          <div class="nav-item">
            <a href="index_m_zh.html" target="_blank">中文</a>
          </div>
          <div class="nav-item" style="margin-right:0">
            <a href="index_m.html" target="_blank">EN</a>
          </div>
        </div>
        <div id="content" class="content">
          <img src="https://shardingsphere.apache.org/images/background_logo.png" class="sub-img" />
          <div class="sub-title">
            <span>Apache ShardingSphere</span>
            <span class="small">Flexible & Embeddable & Extensible</span>
          </div>
          <hr class="sub-hr" />
          <div class="sub-content">
            <p class="sub-text">
              Apache ShardingSphere is an open-source ecosystem consisted of a set of distributed database solutions,
              including 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.
            </p>
            <p class="sub-text">
              Apache ShardingSphere aiming at reasonably making full use of the computation and storage capacity of existed database in distributed system, 
              rather than a totally new database.
              As the cornerstone of enterprises, relational database still takes a huge market share. 
              Therefore, we prefer to focus on its increment instead of a total overturn.
            </p>
            <p class="sub-text">
              Apache ShardingSphere begin to focus on pluggable architecture from version 5.x, features can be embedded into project flexibility.
              Currently, the features such as data sharding, replica query, data encrypt, shadow database,
              and SQL dialects / database protocols such as MySQL, PostgreSQL, SQLServer, Oracle supported are all weaved by plugins.
              Developers can customize their own ShardingSphere just like building lego blocks.
              There are lots of SPI extensions for Apache ShardingSphere now and increase continuously.
            </p>
            <p class="sub-text">
              ShardingSphere became an Apache Top Level Project on April 16, 2020.
            </p>
          </div>
          <div class="sub-btn_box">
            <a class="sub-button" href="https://shardingsphere.apache.org/document/current/en/downloads/"
              target="_blank">Download</a>
            <a class="sub-button" href="https://shardingsphere.apache.org/document/current/en/overview"
              target="_blank">Learn More</a>
          </div>
          <hr class="sub-btn-hr" />
          <!--<div class="sub-point">-->
          <!--<div class="sub-point-list">-->
          <!--<img src="https://shardingsphere.apache.org/images/sharding_jdbc@2.png" class="nl-img" alt="" />-->
          <!--<p>Sharding-JDBC</p>-->
          <!--</div>-->
          <!--<div class="sub-point-list">-->
          <!--<img src="https://shardingsphere.apache.org/images/sharding_proxy@2.png" class="nl-img" alt="" />-->
          <!--<p>Sharding-Proxy</p>-->
          <!--</div>-->
          <!--<div class="sub-point-list">-->
          <!--<img src="https://shardingsphere.apache.org/images/sharding_sidecar@2.png" class="nl-img" alt="" />-->
          <!--<p>Sharding-Sidecar</p>-->
          <!--</div>-->
          <!--</div>-->
        </div>
      </div>
    </div>
  </header>
  <section>
    <div class="swiper-container">
      <div class="swiper-wrapper">
        <div class="swiper-slide">
          <div class="con-shard">
            <div class="con-item">
              <div class="l-msg">
                <div class="l-m-tit">Scale Out</div>
                <hr class="l-m-tit-hr" />
                <div class="l-m-info">
                  <p>Data storage is not limited by single disk capacity, it is possible for increase storage capacity by increasing database servers,
                    system can migrate data dynamically in anytime and anywhere without shutdown. </p>
                </div>
                <img src="https://shardingsphere.apache.org/images/db_sharding@2.png" class="point-img-shard" alt="" />
              </div>
            </div>
          </div>
        </div>
        <div class="swiper-slide">
          <div class="con-orch">
            <div class="con-item">
              <div class="l-msg">
                <div class="l-m-tit">Compute and Storage Split</div>
                <hr class="l-m-tit-hr" />
                <div class="l-m-info">
                  <p>Computing nodes are stateless and can be increased by scale out, storage and computing nodes can be optimized independently.
                    It is possible for share the capacity by computing push down.</p>
                </div>
                <img src="https://shardingsphere.apache.org/images/db_orchestration@2.png" class="point-img-orch" alt="" />
              </div>
            </div>
          </div>
        </div>
        <div class="swiper-slide">
          <div class="con-tran">
            <div class="con-item">
              <div class="l-msg">
                <div class="l-m-tit">Distributed Transaction</div>
                <hr class="l-m-tit-hr" />
                <div class="l-m-info">
                  <p>Provide hybrid engine based on XA 2PC and BASE transaction.</p>
                </div>
                <img src="https://shardingsphere.apache.org/images/db_transaction@2.png" class="point-img-tran" alt="" />
              </div>
            </div>
          </div>
        </div>
        <div class="swiper-slide">
          <div class="con-shard">
            <div class="con-item">
              <div class="l-msg">
                <div class="l-m-tit">HA & Consensus</div>
                <hr class="l-m-tit-hr" />
                <div class="l-m-info">
                  <p>Integrated native database HA and consensus solution.</p>
                </div>
                <img src="https://shardingsphere.apache.org/images/db_sharding@2.png" class="point-img-shard" alt="" />
              </div>
            </div>
          </div>
        </div>
        <div class="swiper-slide">
          <div class="con-tran">
            <div class="con-item">
              <div class="l-msg">
                <div class="l-m-tit">DistSQL</div>
                <hr class="l-m-tit-hr" />
                <div class="l-m-info">
                  <p>Provide distribute SQL to operate resources and rules like native database.</p>
                </div>
                <img src="https://shardingsphere.apache.org/images/db_transaction@2.png" class="point-img-tran" alt="" />
              </div>
            </div>
          </div>
        </div>
        <div class="swiper-slide">
          <div class="con-tran">
            <div class="con-item">
              <div class="l-msg">
                <div class="l-m-tit">Extensible</div>
                <hr class="l-m-tit-hr" />
                <div class="l-m-info">
                  <p>Features can be embedded into project flexibility. Developers can customize their own ShardingSphere just like building lego blocks.</p>
                </div>
                <img src="https://shardingsphere.apache.org/images/db_transaction@2.png" class="point-img-tran" alt="" />
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- if pagination is needed. -->
      <div class="swiper-pagination"></div>
    </div>
    <div class="con-footer">
      <hr class="con-footer-hr" />
      <div class="con-item">
        <div class="footer-img">
          <img src="https://shardingsphere.apache.org/images/logo_bottom@2.png" class="footer-logo" alt="logo" />
        </div>
        <div class="footer-icon">
          <a href="http://www.apache.org" target="_self">
            <img src="https://shardingsphere.apache.org/images/asf_logo_wide.svg" alt="apache-logo" style="width: 5rem;" />
          </a>
        </div>
      </div>
    </div>
  </section>
  <div class="footer">
    <p>
      Copyright © 2018-2020, Apache ShardingSphere, ShardingSphere, Apache,
      the Apache feather logo, and the Apache ShardingSphere project logo are
      either registered trademarks or trademarks of The Apache Software
      Foundation in the United States and other countries.
    </p>
  </div>
  <script>
    !(function () {
      var $navMenu = document.getElementById('nav-menu');
      var $navBtn = document.getElementById('nav-btn');
      $navBtn.addEventListener(
        'touchstart',
        function () {
          if ($navMenu.clientHeight) {
            $navMenu.style.height = '0'
          } else {
            $navMenu.style.height = 'auto'
          }
        },
        false
      )
    })()
  </script>

  <!-- Effect of carousel -->
  <script>
    var mySwiper = new Swiper('.swiper-container', {
      // direction: 'vertical', // vertical switch option
      zoom: false, // unable to zoom
      passiveListeners: false,
      simulateTouch: true, // allow simulate click on phone
      speed: 700,
      autoHeight: true, //set auto height
      autoplay: {
        delay: 4000,
        disableOnInteraction: false,
      },
      loop: true, // allow loop mode
      touchRatio: 2.5, // touch ratio, the larger the faster
      effect: 'coverflow', // choose the switch effect
      coverflowEffect: {
        rotate: 50, // y axis rotate angle
        stretch: 1,
        depth: 1500,
        modifier: 2,
        slideShadows: true,
      },
      slidesPerView: 1, // number of page show at the same time
      pagination: { //pagination
        el: '.swiper-pagination',
        bulletActiveClass: 'my-bullet-active',
        clickable: true,
      },
    });
  </script>
  <!-- chosen color of the pagination -->
  <style type="text/css">
    .my-bullet-active {
      background: #ff9f0e;
      opacity: 1;
    }
  </style>
</body>

</html>