glojure - Interpretador Clojure hospedado sobre Go
(github.com/glojurelang)- Um interpretador Clojure projetado como uma linguagem "hosted" hospedada, ao contrário de outras implementações de Clojure baseadas em Go
- Suporta interop extensível, permitindo usar qualquer valor Go como valor de Glojure, e vice-versa
- Oferece acesso fácil a bibliotecas Go, assim como Clojure acessa frameworks Java
- Suporta duas formas de uso: ferramenta CLI standalone (
glj) e embedding dentro de aplicações Go- No embedding, é possível adicionar configurações scriptáveis, extensões de plugins Clojure e combinar o desempenho de Go com a expressividade de Clojure
- Suporta chamadas bidirecionais Clojure ↔ Go, permitindo chamar funções Go a partir de Clojure e funções Clojure a partir de Go
- Inclui por padrão diversos recursos de interop da biblioteca padrão
- Para evitar ambiguidade de namespace, substitui
/nos nomes de pacotes Go por:(ex.:net/http→net:http) - Pacotes adicionais podem ser expostos por compilação direta após criar um package map
- Para evitar ambiguidade de namespace, substitui
- O recurso de REPL interativo oferece modos de edição Vi/emacs, edição multilinha, autocompletar com tab, histórico persistente, job control e interrupções
- Os tipos numéricos têm diferenças de mapeamento em relação ao Clojure (ex.:
long→int64,char→lang.Char,BigInt→*lang.BigInt) - Ainda está em estágio inicial de desenvolvimento, com bugs, recursos não implementados e desempenho limitado; compatibilidade retroativa não é garantida antes da v1
- Licença EPL-1.0
Ainda não há comentários.