Toolkit SQL assíncrono e escrito inteiramente em Rust, com consultas SQL comuns verificadas em tempo de compilação e suporte a PostgreSQL, MySQL/MariaDB e SQLite.
go-mysql-org/go-mysql
Biblioteca pura em Go para comunicação pelo protocolo de rede do MySQL e MariaDB, com replicação de binlog, cliente, servidor falso e driver database/sql.
- Estrelas
- 4,974
- Forks
- 1,097
- Issues abertas
- 166
- Último commit
- anteontem
O que é?
go-mysql é uma biblioteca pura em Go que implementa o protocolo de rede do MySQL e MariaDB. Ela permite que programas em Go se conectem a um servidor MySQL, atuem como réplica para ler o fluxo do binlog ou criem seus próprios endpoints compatíveis com MySQL.
O pacote de replicação processa eventos de um fluxo de binlog usando a posição no arquivo ou GTID, o que é útil para manter caches ou índices de busca sincronizados com um banco de dados. O pacote canal se baseia nisso para exportar os dados existentes e, em seguida, aplicar alterações incrementais nas linhas. O projeto também inclui comandos de exemplo, como uma ferramenta escrita em Go semelhante ao mysqldump.
Além da replicação, o repositório oferece um cliente simples com pool de conexões e resultados de SELECT em streaming, um pacote de servidor para criar proxies MySQL e um driver database/sql com opções de DSN configuráveis, como TLS e compressão.
Recursos principais
- 01Lê fluxos de eventos do binlog por posição no arquivo ou GTID para MySQL e MariaDB.
- 02Framework de sincronização incremental de dados (canal) que exporta os dados existentes e depois aplica alterações nas linhas.
- 03Cliente MySQL simples com pool de conexões e resultados de SELECT em streaming.
- 04Pacote de servidor para criar um endpoint ou proxy compatível com MySQL.
- 05Driver database/sql com opções de TLS, compressão zlib/zstd e timeout.
Casos de uso
- Sincronizar dados do MySQL com Redis ou Elasticsearch consumindo alterações do binlog.
- Criar um proxy MySQL ou um servidor MySQL falso para testes em Go.
- Escrever ferramentas de backup ou exportação em Go semelhantes ao mysqldump.
- Usar MySQL em código Go pela interface padrão database/sql.
Início rápido
- 1
Importe os pacotes da biblioteca no seu projeto Go
- 2
Compile os aplicativos de exemplo incluídos a partir da raiz do projeto
make build
Em coleções
Tópicos
Perguntas frequentes
- O que é go-mysql?
- Biblioteca pura em Go para comunicação pelo protocolo de rede do MySQL e MariaDB, com replicação de binlog, cliente, servidor falso e driver database/sql. go-mysql é uma biblioteca pura em Go que implementa o protocolo de rede do MySQL e MariaDB. Ela permite que programas em Go se conectem a um servidor MySQL, atuem como réplica para ler o fluxo do binlog ou criem seus próprios endpoints compatíveis com MySQL.
- go-mysql é gratuito? Qual é a licença?
- go-mysql é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- go-mysql ainda é mantido?
- Manutenção ativa. O último commit de go-mysql foi em 6 de nov. de 2026.
- Para que posso usar go-mysql?
- Sincronizar dados do MySQL com Redis ou Elasticsearch consumindo alterações do binlog. Criar um proxy MySQL ou um servidor MySQL falso para testes em Go. Escrever ferramentas de backup ou exportação em Go semelhantes ao mysqldump. Usar MySQL em código Go pela interface padrão database/sql.
- Como instalar go-mysql?
- Importe os pacotes da biblioteca no seu projeto Go Compile os aplicativos de exemplo incluídos a partir da raiz do projeto: make build
- Onde consigo go-mysql?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/go-mysql-org/go-mysql
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma branch do MySQL 8.0.44 mantida pela Alibaba Cloud, com engine analítica de armazenamento DuckDB, índices vetoriais HNSW e consultas nativas de flashback.
Driver MySQL em Python puro que implementa o protocolo Client/Server, com API Classic compatível com DB API v2.0 e X DevAPI para o Document Store.
Banco de dados relacional SQL de código aberto amplamente utilizado, derivado do MySQL, com compatibilidade com MySQL, busca vetorial nativa e clustering.
Um cache transparente para MySQL e Postgres que fica na frente do banco de dados e mantém os resultados das consultas em cache sincronizados pelo fluxo de replicação.
Um servidor de replicação distribuída de SQLite sem líder, que aceita gravações em qualquer nó e usa o protocolo wire do MySQL.