/arana

Arana is a Cloud Native Database Proxy. It can also be deployed as a Database mesh sidecar.

Primary LanguageGoApache License 2.0Apache-2.0

Arana

Arana is a Cloud Native Database Proxy. It can be deployed as a Database mesh sidecar. It provides transparent data access capabilities, when using arana, user doesn't need to care about the sharding details of database, they can use it just like a single MySQL database.

Overview

License codecov Go Report Card Release Docker Pulls

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

Introduction | 中文

First, Arana is a Cloud Native Database Proxy. It provides transparent data access capabilities, when using arana, user doesn't need to care about the sharding details of database, they can use it just like a single MySQL database. Arana also provide abilities of Multi Tenant, Distributed transaction, Shadow database, SQL Audit , Data encrypt / decrypt and so on. Through simple config, user can use these abilities provided by arana directly.

Second, Arana can also be deployed as a Database mesh sidecar. As a Database mesh sidecar, arana switches data access from client mode to proxy mode, which greatly optimizes the startup speed of applications. It provides the ability to manage database traffic, it takes up very little container resources, doesn't affect the performance of application services in the container, but provides all the capabilities of proxy.

Architecture

Features

Feature Complete
Single DB Proxy
Read Write Splitting
Sharding
Multi Tenant
Distributed Primary Key
Shadow Table
Distributed Transaction WIP
Database Mesh WIP
Tracing / Metrics WIP
SQL Audit WIP
Data encrypt / decrypt Roadmap
SQL LIMITER Roadmap

Getting started

Please reference this link Getting Started

arana start -c ${configFilePath}

Prerequisites

  • Go 1.18+
  • MySQL Server 5.7+

Design and implementation

Roadmap

Built With

  • TiDB - The SQL parser used

Contact

Arana Chinese Community Meeting Time: Every Saturday At 9:00PM GMT+8

Contributing

Thanks for your help improving the project! We are so happy to have you! We have a contributing guide to help you get involved in the Arana project.

License

Arana software is licenced under the Apache License Version 2.0. See the LICENSE file for details.