Асинхронный SQL-инструментарий на чистом Rust с запросами на обычном SQL, проверяемыми во время компиляции; поддерживает PostgreSQL, MySQL/MariaDB и SQLite.
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
Импортируйте пакеты библиотеки в свой проект Go
- 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 обновляется ежедневно.
Похожие проекты
Ветка MySQL 8.0.44 от Alibaba Cloud с аналитическим движком хранения DuckDB, векторными индексами HNSW и встроенными запросами к прошлому состоянию данных.
Чисто Python-драйвер MySQL с протоколом Client/Server, Classic API по DB API v2.0 и X DevAPI для Document Store.
Широко распространённая реляционная SQL-база данных с открытым исходным кодом, форк MySQL с совместимостью с MySQL, встроенным векторным поиском и кластеризацией.
Прозрачный кэш для MySQL и Postgres, который работает перед базой данных и синхронизирует результаты запросов через поток репликации.
Распределённый SQLite-сервер без лидера: принимает записи на любом узле и поддерживает протокол MySQL.