Parser, transpilador, otimizador e engine SQL para Python, sem dependências, que traduz consultas entre mais de 30 dialetos SQL.
tobilg/polyglot
Transpilador de SQL em Rust/WASM que analisa, gera, transpila e formata SQL em mais de 30 dialetos, inspirado no sqlglot.
- Estrelas
- 999
- Forks
- 76
- Issues abertas
- 0
- Último commit
- há 4 dias
O que é?
Polyglot converte SQL entre mais de 30 dialetos, incluindo PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, Trino e ClickHouse. Ele pode analisar SQL e transformá-lo em uma AST tipada, gerar SQL a partir de nós da AST, formatar consultas e validá-las com verificações de sintaxe, semântica e esquema.
O núcleo é escrito em Rust e distribuído como crate Rust, SDK TypeScript/WASM para Node.js e navegadores, pacote Python construído com PyO3, SDK Go sobre uma biblioteca C FFI e módulo WASI portátil que troca JSON por stdin e stdout.
O projeto também oferece linhagem de colunas com payloads compatíveis com OpenLineage e uma API compacta de análise de consultas que informa projeções, relações, CTEs e uso de colunas. A suíte de testes é executada com casos de fixture extraídos do sqlglot.
Recursos principais
- 01Transpila SQL entre quaisquer dois dos mais de 30 dialetos
- 02Analisa SQL e o transforma em uma AST tipada, além de gerar SQL a partir dela
- 03Formata SQL e gera uma versão legível, com limites de proteção configuráveis
- 04Oferece linhagem de colunas e payloads JSON compatíveis com OpenLineage
- 05Disponibiliza bindings para Rust, TypeScript, Python, Go e WASI
Casos de uso
- Migrar consultas analíticas de um dialeto de data warehouse para outro
- Traduzir SQL em um app de navegador ou Node.js sem precisar fazer uma requisição ao servidor
- Adicionar linhagem de SQL ou análise de consultas a uma plataforma de dados
- Validar e formatar SQL em CI ou em ferramentas para desenvolvedores
Início rápido
- 1
Instale o SDK de TypeScript com npm
npm install @polyglot-sql/sdk - 2
Transpile SQL do MySQL para PostgreSQL em TypeScript
- 3
Como alternativa, instale o pacote Python
pip install polyglot-sql
Antes de usar
- O módulo de comandos WASI é descrito como experimental.
- O SDK Go precisa de uma biblioteca FFI nativa compilada separadamente durante a execução.
Em coleções
Tópicos
Perguntas frequentes
- O que é polyglot?
- Transpilador de SQL em Rust/WASM que analisa, gera, transpila e formata SQL em mais de 30 dialetos, inspirado no sqlglot. Polyglot converte SQL entre mais de 30 dialetos, incluindo PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, Trino e ClickHouse. Ele pode analisar SQL e transformá-lo em uma AST tipada, gerar SQL a partir de nós da AST, formatar consultas e validá-las com verificações de sintaxe, semântica e esquema.
- polyglot é gratuito? Qual é a licença?
- polyglot é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- polyglot ainda é mantido?
- Manutenção ativa. O último commit de polyglot foi em 3 de nov. de 2026.
- Para que posso usar polyglot?
- Migrar consultas analíticas de um dialeto de data warehouse para outro Traduzir SQL em um app de navegador ou Node.js sem precisar fazer uma requisição ao servidor Adicionar linhagem de SQL ou análise de consultas a uma plataforma de dados Validar e formatar SQL em CI ou em ferramentas para desenvolvedores
- Como instalar polyglot?
- Instale o SDK de TypeScript com npm: npm install @polyglot-sql/sdk Transpile SQL do MySQL para PostgreSQL em TypeScript Como alternativa, instale o pacote Python: pip install polyglot-sql
- Onde consigo polyglot?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/tobilg/polyglot
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Parser SQL para Java que transforma instruções SQL em uma árvore navegável de objetos Java e pode convertê-las de volta em texto SQL.
Biblioteca Go e CLI que analisa SQL no dialeto ClickHouse em uma AST tipada e formata ou embeleza consultas.
Uma alternativa plug-and-play ao Apache Spark, escrita em Rust, que executa código PySpark existente pelo protocolo Spark Connect.
Um mecanismo unificado de análise para processamento de dados em larga escala, com APIs em Scala, Java, Python e R.
Ambiente auto-hospedado no estilo notebook para criar, agendar e depurar pipelines de dados em Python, SQL ou R.