
Dialeto Lisp em ambiente isolado para a JVM com estruturas de dados imutáveis, macros e mais de 900 funções principais. Ideal para scripts seguros, automação e incorporação em aplicações Java.
Venice é um dialeto Lisp com sandbox, inspirado em Clojure, com excelente interoperabilidade com Java.
Venice é um dialeto Lisp nascido da necessidade de uma linguagem de propósito geral segura e isolada (sandbox). Ela compartilha com Lisp a filosofia de código-como-dados e um poderoso sistema de macros.
Venice é principalmente uma linguagem de programação funcional, focada em estruturas de dados imutáveis e persistentes.
Venice suporta macros, recursão de cauda, carregamento dinâmico de código, multimétodos, protocolos e muito mais. Ela oferece excelente interoperabilidade com Java e um sandbox configurável que pode prevenir todos os tipos de interações indesejadas com a JVM e o próprio Venice. Venice foi projetado desde o início com um sandbox, tornando-o um cidadão de primeira classe.
Venice inclui uma biblioteca abrangente com mais de 900 funções principais. Suas estruturas de dados persistentes e imutáveis, juntamente com atoms, futures, promises e agents no estilo Clojure, simplificam bastante o processo de escrever código concorrente.
Venice integra-se de forma transparente e direta com Java e quaisquer bibliotecas de terceiros, dando acesso a uma vasta gama de bibliotecas, frameworks e ferramentas.
A força do Venice está em tornar tarefas complexas de script e automação fáceis. Você já se sentiu limitado por scripts Bash ou PowerShell? Com Venice, você pode escrever scripts elegantes e concisos, independentes de plataforma, sem esforço.
Venice não depende de bibliotecas de tempo de execução (além da JVM). Você pode adicioná-lo facilmente como um JAR independente ao seu classpath.
Venice requer Java 8 ou superior.
Gostaria de experimentar o Venice em um ambiente REPL interativo? Teste no Gitpod
Folha de Consulta (Cheat Sheet): HTML PDF
Histórico de Alterações (Change Log)
Você pode obtê-la do repositório central do Maven:
<dependency>
<groupId>com.github.jlangch</groupId>
<artifactId>venice</artifactId>
<version>1.12.52</version>
</dependency>
A partir de um shell de comando, execute ./gradlew shadowJar no diretório raiz do projeto para invocar a tarefa Gradle que compila o JAR do Venice.
No MacOS / Linux
Conceda permissão de execução ao gradlew após clonar o repositório git do Venice ...
venice% chmod +x ./gradlew
... e compile o projeto
venice% ./gradlew clean shadowJar
No Windows
C:\Users\foo\venice> gradlew.bat clean shadowJar
Aceito Pull Requests via GitHub. Existem algumas diretrizes que facilitarão a aplicação dos PRs para mim:
Este código está licenciado sob a Apache License v2.