Repolode
dop251

dop251/goja

Motor de JavaScript ECMAScript 5.1 escrito íntegramente en Go, para integrar la ejecución de JS en aplicaciones Go.

Estrellas
7,155
Forks
497
Issues abiertos
33
Último commit
hace 16 horas

¿Qué es?

Goja es un motor de JavaScript implementado íntegramente en Go, compatible con ECMAScript 5.1 y con la mayoría de las funciones de ES6 aún en desarrollo. Permite que un programa Go cargue y ejecute código JavaScript, pase valores de Go a los scripts y recupere sus resultados, sin depender de cgo ni de un wrapper de V8.

El motor está pensado para situaciones en las que los scripts controlan la lógica dentro de una aplicación Go, como la configuración, las reglas o el código de plugins. Al estar escrito íntegramente en Go, se compila fácilmente y se ejecuta en cualquier plataforma compatible con Go. También ofrece al programa anfitrión un control preciso del entorno de ejecución, incluida la posibilidad de interrumpir scripts de larga duración y adaptar los nombres de los campos de structs de Go a las convenciones de JavaScript.

Goja no incluye setTimeout, setInterval ni las API de Node.js; estas las proporciona el proyecto independiente goja_nodejs. Cada instancia de Runtime solo puede utilizarse desde una goroutine, y su rendimiento está muy por debajo del de V8 en tareas de JavaScript con uso intensivo de cómputo.

Funciones clave

  • 01Implementa ECMAScript 5.1, con compatibilidad con expresiones regulares y modo estricto.
  • 02Convierte valores de Go a JavaScript y exporta valores de JavaScript de vuelta a Go.
  • 03Invoca funciones JavaScript desde Go, con un valor this especificado o sin él.
  • 04Adapta los nombres de campos y métodos de structs de Go a los de JavaScript mediante un adaptador de nombres personalizado.
  • 05Interrumpe scripts en ejecución desde otra goroutine.
  • 06Admite sourcemaps y puede ejecutar Babel y el compilador de TypeScript.

Casos de uso

  • Integrar scripts o reglas definidos por los usuarios en un servicio Go.
  • Ejecutar bibliotecas ES5 o herramientas de compilación dentro de un programa Go sin cgo.
  • Crear un sistema de plugins o configuración basado en JavaScript para Go.
  • Investigar o controlar un entorno de ejecución de JavaScript desde Go.

Temas

Preguntas frecuentes

¿Qué es goja?
Motor de JavaScript ECMAScript 5.1 escrito íntegramente en Go, para integrar la ejecución de JS en aplicaciones Go. Goja es un motor de JavaScript implementado íntegramente en Go, compatible con ECMAScript 5.1 y con la mayoría de las funciones de ES6 aún en desarrollo. Permite que un programa Go cargue y ejecute código JavaScript, pase valores de Go a los scripts y recupere sus resultados, sin depender de cgo ni de un wrapper de V8.
¿goja es gratuito? ¿Qué licencia tiene?
goja es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿goja sigue mantenido?
Mantenimiento activo. El último commit de goja fue el 21 oct 2026.
¿Para qué puedo usar goja?
Integrar scripts o reglas definidos por los usuarios en un servicio Go. Ejecutar bibliotecas ES5 o herramientas de compilación dentro de un programa Go sin cgo. Crear un sistema de plugins o configuración basado en JavaScript para Go. Investigar o controlar un entorno de ejecución de JavaScript desde Go.
¿Dónde consigo goja?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/dop251/goja

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

Proyectos relacionados