Repolode
tobilg

tobilg/polyglot

Transpilador de SQL en Rust/WASM que analiza, genera, transpila y formatea SQL en más de 30 dialectos, inspirado en sqlglot.

Estrellas
998
Forks
76
Issues abiertos
0
Último commit
hace 3 días

¿Qué es?

Polyglot convierte SQL entre más de 30 dialectos, incluidos PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, Trino y ClickHouse. Puede analizar SQL y convertirlo en un AST tipado, generar SQL a partir de nodos AST, dar formato legible a las consultas y validarlas mediante comprobaciones sintácticas, semánticas y conscientes del esquema.

El núcleo está escrito en Rust y se distribuye como crate de Rust, SDK de TypeScript/WASM para Node.js y navegadores, paquete de Python creado con PyO3, SDK de Go sobre una biblioteca C FFI y módulo de comandos WASI portable que intercambia JSON mediante stdin y stdout.

El proyecto también ofrece linaje de columnas con payloads compatibles con OpenLineage y una API compacta de análisis de consultas que informa sobre proyecciones, relaciones, CTE y uso de columnas. Su suite de pruebas se ejecuta con casos de fixture extraídos de sqlglot.

Funciones clave

  • 01Transpila SQL entre cualquier par de más de 30 dialectos
  • 02Analiza SQL y lo convierte en un AST tipado, y genera SQL a partir de este
  • 03Da formato y presenta SQL de forma legible, con límites de seguridad configurables
  • 04Ofrece linaje de columnas y payloads JSON compatibles con OpenLineage
  • 05Ofrece bindings para Rust, TypeScript, Python, Go y WASI

Casos de uso

  • Migrar consultas de analítica de un dialecto de almacén de datos a otro
  • Traducir SQL en una aplicación de navegador o Node.js sin hacer una solicitud al servidor
  • Añadir linaje de SQL o análisis de consultas a una plataforma de datos
  • Validar y dar formato a SQL en CI o en herramientas para desarrolladores

Inicio rápido

  1. 1

    Instala el SDK de TypeScript con npm

    npm install @polyglot-sql/sdk
  2. 2

    Transpila SQL de MySQL a PostgreSQL en TypeScript

  3. 3

    Como alternativa, instala el paquete de Python

    pip install polyglot-sql

Antes de usarlo

  • El módulo de comandos WASI se describe como experimental.
  • El SDK de Go necesita una biblioteca FFI nativa compilada por separado durante la ejecución.

En colecciones

Temas

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

Preguntas frecuentes

¿Qué es polyglot?
Transpilador de SQL en Rust/WASM que analiza, genera, transpila y formatea SQL en más de 30 dialectos, inspirado en sqlglot. Polyglot convierte SQL entre más de 30 dialectos, incluidos PostgreSQL, MySQL, BigQuery, Snowflake, DuckDB, Trino y ClickHouse. Puede analizar SQL y convertirlo en un AST tipado, generar SQL a partir de nodos AST, dar formato legible a las consultas y validarlas mediante comprobaciones sintácticas, semánticas y conscientes del esquema.
¿polyglot es gratuito? ¿Qué licencia tiene?
polyglot es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿polyglot sigue mantenido?
Mantenimiento activo. El último commit de polyglot fue el 3 nov 2026.
¿Para qué puedo usar polyglot?
Migrar consultas de analítica de un dialecto de almacén de datos a otro Traducir SQL en una aplicación de navegador o Node.js sin hacer una solicitud al servidor Añadir linaje de SQL o análisis de consultas a una plataforma de datos Validar y dar formato a SQL en CI o en herramientas para desarrolladores
¿Cómo se instala polyglot?
Instala el SDK de TypeScript con npm: npm install @polyglot-sql/sdk Transpila SQL de MySQL a PostgreSQL en TypeScript Como alternativa, instala el paquete de Python: pip install polyglot-sql
¿Dónde consigo polyglot?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/tobilg/polyglot

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados