go-mysql-org/go-mysql

a powerful mysql toolset with Go

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 1 hour ago
Type:Library / SDKCategory(s):Relational & SQL DatabasesDatabases & Storage
Added to GitGenius on September 13th, 2026
Created on February 21st, 2014
Open Issues & Pull Requests: 156 (+0)
GitHub issues: Enabled
Number of forks: 1,076
Total Stargazers: 4,969 (+0)
Total Subscribers: 157 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 13.6 hours
Mean response time: 354.7 days
90th percentile: 1679.3 days
Tracked items: 181

How this project is maintained

92% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "mariadb" is answered fastest, typically in about an hour, while "canal" waits about 28 hours. Three people close 85% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 63
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,578 days
Stale 30+ days: 61
Stale 90+ days: 60

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • canal (35)
  • mariadb (10)
  • bug (9)
  • enhancement (8)
  • replication (7)
  • tests (4)
  • server (3)
  • client (2)

Most active issues this week

Sign in to see which issues are moving.

Detailed Description

go-mysql is a pure Go library for handling MySQL network protocol and replication as used by MySQL and MariaDB.

The library solves the problem of integrating MySQL replication and protocol handling into Go applications without external dependencies. It implements the MySQL replication protocol to allow applications to act as replicas, consuming binlog events from a master server and processing them for purposes like cache updates, data synchronization, or event streaming. The approach works by providing low-level protocol handling as a library rather than requiring separate tools or services.

The tool suits projects that need to stream or react to MySQL changes in real time, sync data to other systems like Redis or Elasticsearch, or implement custom MySQL clients and servers in Go. It includes example applications for common tasks like binlog parsing, dumping, and running a fake MySQL server. Teams should adopt this if they want to avoid external MySQL tools and keep replication logic within their Go application.

The project maintains continuous integration across multiple architectures including amd64, s390x, arm64, and arm on Linux, with FreeBSD support sporadically tested by developers. The library follows Go's minimum version requirements and is not compatible with TinyGo. Example applications are provided in the repository and can be built to demonstrate replication, incremental dumping, client operations, and fake server functionality.