Repolode
go-mysql-org

go-mysql-org/go-mysql

Библиотека на чистом Go для работы с сетевым протоколом MySQL и MariaDB: репликация binlog, клиент, эмулятор сервера и драйвер database/sql.

Звёзды
4,974
Форки
1,097
Открытые issues
166
Последний коммит
позавчера

Что это?

go-mysql — библиотека на чистом Go, реализующая сетевой протокол MySQL и MariaDB. Она позволяет Go-программам подключаться к серверу MySQL, выступать в роли реплики и читать поток binlog или создавать собственные совместимые с MySQL серверные конечные точки.

Пакет replication обрабатывает события из потока binlog, ориентируясь на позицию в файле или GTID. Это удобно, чтобы поддерживать актуальность кешей и поисковых индексов на основе данных из базы. Пакет canal развивает этот подход: он выгружает существующие данные, а затем применяет инкрементальные изменения строк. В проект также входят примеры команд, например написанный на Go аналог mysqldump.

Помимо репликации, в репозитории есть простой клиент с пулом соединений и потоковым получением результатов SELECT, пакет server для создания прокси MySQL и драйвер database/sql с настраиваемыми параметрами DSN, включая TLS и сжатие.

Ключевые возможности

  • 01Читает потоки событий binlog MySQL и MariaDB, ориентируясь на позицию в файле или GTID.
  • 02Фреймворк canal для инкрементальной синхронизации данных: выгружает существующие данные, а затем применяет изменения строк.
  • 03Простой клиент MySQL с пулом соединений и потоковым получением результатов SELECT.
  • 04Пакет server для создания совместимой с MySQL конечной точки или прокси.
  • 05Драйвер database/sql с поддержкой TLS, сжатия zlib/zstd и параметров тайм-аута.

Сценарии использования

  • Синхронизация данных MySQL с Redis или Elasticsearch путём обработки изменений из binlog.
  • Создание прокси MySQL или эмулятора сервера MySQL для тестирования на Go.
  • Написание на Go инструментов резервного копирования или экспорта, похожих на mysqldump.
  • Работа с MySQL из кода на Go через стандартный интерфейс database/sql.

Быстрый старт

  1. 1

    Импортируйте пакеты библиотеки в свой проект Go

  2. 2

    Соберите входящие в комплект примеры приложений из корневого каталога проекта

    make build

В подборках

Темы

Частые вопросы

Что такое go-mysql?
Библиотека на чистом Go для работы с сетевым протоколом MySQL и MariaDB: репликация binlog, клиент, эмулятор сервера и драйвер database/sql. go-mysql — библиотека на чистом Go, реализующая сетевой протокол MySQL и MariaDB. Она позволяет Go-программам подключаться к серверу MySQL, выступать в роли реплики и читать поток binlog или создавать собственные совместимые с MySQL серверные конечные точки.
go-mysql можно использовать бесплатно? Какая у него лицензия?
go-mysql распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
go-mysql всё ещё поддерживается?
Активно поддерживается. Последний коммит в go-mysql — 6 нояб. 2026 г..
Для чего можно использовать go-mysql?
Синхронизация данных MySQL с Redis или Elasticsearch путём обработки изменений из binlog. Создание прокси MySQL или эмулятора сервера MySQL для тестирования на Go. Написание на Go инструментов резервного копирования или экспорта, похожих на mysqldump. Работа с MySQL из кода на Go через стандартный интерфейс database/sql.
Как установить go-mysql?
Импортируйте пакеты библиотеки в свой проект Go Соберите входящие в комплект примеры приложений из корневого каталога проекта: make build
Где скачать go-mysql?
Исходный код и инструкции по установке — на GitHub: https://github.com/go-mysql-org/go-mysql

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Широко распространённая реляционная SQL-база данных с открытым исходным кодом, форк MySQL с совместимостью с MySQL, встроенным векторным поиском и кластеризацией.

8,5 тыс.+37 за неделю2,3 тыс.C++GPL-2.0Обновлён 23 часа назад