Repolode
tobilg

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. 1

    Instale o SDK de TypeScript com npm

    npm install @polyglot-sql/sdk
  2. 2

    Transpile SQL do MySQL para PostgreSQL em TypeScript

  3. 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

#sql#transpiler#rust#wasm#sql-parser#data-engineering#dialect-conversion#sqlglot

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