Interpretador de Python 3 escrito em Rust, capaz de executar código Python sem bindings de CPython, com suporte a WebAssembly e incorporação em aplicações.
dop251/goja
Engine JavaScript ECMAScript 5.1 escrita em Go puro para incorporar a execução de JS em aplicações Go.
- Estrelas
- 7,155
- Forks
- 497
- Issues abertas
- 33
- Último commit
- há 16 horas
O que é?
Goja é uma engine JavaScript implementada inteiramente em Go, compatível com ECMAScript 5.1, enquanto a maioria dos recursos do ES6 ainda está em desenvolvimento. Ela permite que um programa Go carregue e execute código JavaScript, passe valores de Go para os scripts e recupere os resultados, sem depender de cgo ou de um wrapper do V8.
A engine é voltada a cenários em que scripts controlam a lógica dentro de uma aplicação Go, como configurações, regras ou código de plugins. Por ser escrita em Go puro, é fácil de compilar e funciona em qualquer plataforma compatível com Go. Também oferece ao programa hospedeiro controle detalhado sobre o ambiente de execução, incluindo a possibilidade de interromper scripts de longa duração e mapear os nomes dos campos de structs Go para as convenções de nomenclatura do JavaScript.
Goja não oferece setTimeout, setInterval nem APIs do Node.js; esses recursos são fornecidos pelo projeto separado goja_nodejs. Cada instância de Runtime só pode ser usada por uma goroutine, e o desempenho fica bem abaixo do V8 em JavaScript com uso intenso de computação.
Recursos principais
- 01Implementa ECMAScript 5.1 com suporte a expressões regulares e modo estrito.
- 02Converte valores de Go para JavaScript e exporta valores JavaScript de volta para Go.
- 03Chama funções JavaScript a partir de Go, com ou sem um valor this especificado.
- 04Mapeia campos e métodos de structs Go para nomes JavaScript por meio de um mapeador de nomes personalizado.
- 05Interrompe scripts em execução a partir de outra goroutine.
- 06Oferece suporte a sourcemaps e pode executar Babel e o compilador TypeScript.
Casos de uso
- Incorporar scripts ou regras definidos pelo usuário em um serviço Go.
- Executar bibliotecas ES5 ou ferramentas de build dentro de um programa Go sem cgo.
- Criar um sistema de plugins ou configurações controlado por JavaScript em Go.
- Pesquisar ou controlar um ambiente de execução JavaScript a partir de Go.
Tópicos
Perguntas frequentes
- O que é goja?
- Engine JavaScript ECMAScript 5.1 escrita em Go puro para incorporar a execução de JS em aplicações Go. Goja é uma engine JavaScript implementada inteiramente em Go, compatível com ECMAScript 5.1, enquanto a maioria dos recursos do ES6 ainda está em desenvolvimento. Ela permite que um programa Go carregue e execute código JavaScript, passe valores de Go para os scripts e recupere os resultados, sem depender de cgo ou de um wrapper do V8.
- goja é gratuito? Qual é a licença?
- goja é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- goja ainda é mantido?
- Manutenção ativa. O último commit de goja foi em 21 de out. de 2026.
- Para que posso usar goja?
- Incorporar scripts ou regras definidos pelo usuário em um serviço Go. Executar bibliotecas ES5 ou ferramentas de build dentro de um programa Go sem cgo. Criar um sistema de plugins ou configurações controlado por JavaScript em Go. Pesquisar ou controlar um ambiente de execução JavaScript a partir de Go.
- Onde consigo goja?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dop251/goja
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um compilador e parser de TypeScript/JavaScript super-rápido, escrito em Rust e utilizável tanto em Rust quanto em JavaScript.
Ferramenta baseada em JavaScript para escrever scripts no estilo shell, com uma camada sobre child_process que escapa argumentos com segurança e oferece recursos multiplataforma.
Solução de scripting que permite desenvolver jogos para Unity e Unreal Engine em TypeScript/JavaScript, com backends de Lua e Python para Unity.
Shell multiplataforma, linguagem de script e framework de automação para Windows, Linux e macOS, criado para trabalhar com dados estruturados e objetos.
Um interpretador interativo de C++ baseado em Clang e LLVM, com um REPL para executar código C++ linha por linha.