Kit de herramientas SQL asíncrono y escrito en Rust puro, con consultas SQL normales verificadas en tiempo de compilación y soporte para PostgreSQL, MySQL/MariaDB y SQLite.
go-mysql-org/go-mysql
Biblioteca pura de Go para comunicarse con el protocolo de red de MySQL y MariaDB, con replicación del binlog, un cliente, un servidor simulado y un driver de database/sql.
- Estrellas
- 4,974
- Forks
- 1,097
- Issues abiertos
- 166
- Último commit
- anteayer
¿Qué es?
go-mysql es una biblioteca pura de Go que implementa el protocolo de red de MySQL y MariaDB. Permite que los programas en Go se conecten a un servidor MySQL, actúen como réplica para leer el flujo del binlog o creen sus propios endpoints compatibles con MySQL.
El paquete replication procesa eventos de un flujo del binlog usando la posición del archivo o GTID, lo que resulta útil para mantener sincronizados con una base de datos las cachés o los índices de búsqueda. El paquete canal se basa en esto para volcar los datos existentes y luego aplicar los cambios incrementales en las filas. El proyecto también incluye comandos de ejemplo, como una herramienta similar a mysqldump escrita en Go.
Además de la replicación, el repositorio ofrece un cliente sencillo con un pool de conexiones y resultados de SELECT en streaming, un paquete server para crear proxies de MySQL y un driver de database/sql con opciones DSN configurables, como TLS y compresión.
Funciones clave
- 01Lee flujos de eventos del binlog por posición del archivo o GTID para MySQL y MariaDB.
- 02Framework de sincronización incremental de datos (canal) que vuelca los datos existentes y luego aplica cambios en las filas.
- 03Cliente sencillo de MySQL con pool de conexiones y resultados de SELECT en streaming.
- 04Paquete server para crear un endpoint o proxy compatible con MySQL.
- 05Driver de database/sql con opciones de TLS, compresión zlib/zstd y tiempos de espera.
Casos de uso
- Sincronizar datos de MySQL con Redis o Elasticsearch consumiendo los cambios del binlog.
- Crear un proxy MySQL o un servidor MySQL simulado para pruebas en Go.
- Escribir herramientas de copia de seguridad o exportación en Go similares a mysqldump.
- Usar MySQL desde código Go mediante la interfaz estándar database/sql.
Inicio rápido
- 1
Importa los paquetes de la biblioteca en tu proyecto de Go
- 2
Compila las aplicaciones de ejemplo incluidas desde la raíz del proyecto
make build
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es go-mysql?
- Biblioteca pura de Go para comunicarse con el protocolo de red de MySQL y MariaDB, con replicación del binlog, un cliente, un servidor simulado y un driver de database/sql. go-mysql es una biblioteca pura de Go que implementa el protocolo de red de MySQL y MariaDB. Permite que los programas en Go se conecten a un servidor MySQL, actúen como réplica para leer el flujo del binlog o creen sus propios endpoints compatibles con MySQL.
- ¿go-mysql es gratuito? ¿Qué licencia tiene?
- go-mysql es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿go-mysql sigue mantenido?
- Mantenimiento activo. El último commit de go-mysql fue el 6 nov 2026.
- ¿Para qué puedo usar go-mysql?
- Sincronizar datos de MySQL con Redis o Elasticsearch consumiendo los cambios del binlog. Crear un proxy MySQL o un servidor MySQL simulado para pruebas en Go. Escribir herramientas de copia de seguridad o exportación en Go similares a mysqldump. Usar MySQL desde código Go mediante la interfaz estándar database/sql.
- ¿Cómo se instala go-mysql?
- Importa los paquetes de la biblioteca en tu proyecto de Go Compila las aplicaciones de ejemplo incluidas desde la raíz del proyecto: make build
- ¿Dónde consigo go-mysql?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/go-mysql-org/go-mysql
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una rama de MySQL 8.0.44 de Alibaba Cloud que añade un motor de almacenamiento analítico DuckDB, índices vectoriales HNSW y consultas flashback nativas.
Driver de MySQL escrito íntegramente en Python que implementa el protocolo Cliente/Servidor y ofrece las API Classic DB API v2.0 y X DevAPI para Document Store.
Una base de datos relacional SQL de código abierto muy utilizada, derivada de MySQL, compatible con MySQL y con búsqueda vectorial nativa y clustering.
Una caché transparente para MySQL y Postgres que se sitúa delante de la base de datos y mantiene sincronizados los resultados de las consultas mediante el flujo de replicación.
Servidor de replicación distribuida de SQLite sin líder, que acepta escrituras en cualquier nodo y usa el protocolo de conexión de MySQL.