Un parser, transpiler, optimizador y motor SQL para Python sin dependencias, que traduce consultas entre más de 30 dialectos de SQL.
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
Instala el SDK de TypeScript con npm
npm install @polyglot-sql/sdk - 2
Transpila SQL de MySQL a PostgreSQL en TypeScript
- 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
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
Un parser SQL para Java que convierte sentencias SQL en un árbol navegable de objetos Java y puede volver a generar el texto SQL.
Una biblioteca y CLI de Go que analiza SQL del dialecto de ClickHouse y lo convierte en un AST tipado, y da formato o embellece las consultas.
Un reemplazo directo de Apache Spark escrito en Rust que ejecuta código PySpark existente mediante el protocolo Spark Connect.
Motor unificado de análisis para procesar datos a gran escala, con API en Scala, Java, Python y R.
Entorno autohospedado, tipo notebook, para crear, programar y depurar pipelines de datos en Python, SQL o R.