arana

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2023 License: Apache-2.0

README

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
Tracing / Metrics
Distributed Transaction WIP
Database Mesh 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.20+
  • 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.

Developer

Thanks to all developers!

License

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

Directories

Path Synopsis
cmd
example
pkg
config/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
runtime
Package runtime is a generated GoMock package.
Package runtime is a generated GoMock package.
runtime/function
Package function provides a set of mysql functions implements by Golang.
Package function provides a set of mysql functions implements by Golang.
third_party
base58
Package base58 provides an API for working with modified base58 and Base58Check encodings.
Package base58 provides an API for working with modified base58 and Base58Check encodings.
cache
Package cache implements a LRU cache.
Package cache implements a LRU cache.
pools
Package pools provides functionality to manage and reuse resources like connections.
Package pools provides functionality to manage and reuse resources like connections.
sync2
Package sync2 provides extra functionality along the same lines as sync.
Package sync2 provides extra functionality along the same lines as sync.
timer
Package timer provides various enhanced timer functions.
Package timer provides various enhanced timer functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL