Venice 是一种受 Clojure 启发的沙盒化 Lisp 方言,具有出色的 Java 互操作性。
Venice 是一种 Lisp 方言,源于对一种安全、沙盒化、通用语言的需求。它与 Lisp 共享代码即数据的理念以及强大的宏系统。
Venice 主要是一种函数式编程语言,专注于不可变的持久化数据结构。
Venice 支持宏、尾递归、动态代码加载、多重方法、协议等众多特性。它具备出色的 Java 互操作性,并提供一个可配置的沙盒,能够防止各种不必要的 JVM 和 Venice 交互。Venice 从设计之初就将沙盒作为一等公民内置其中。
Venice 包含一个拥有 900 多个核心函数的综合库。其不可变的持久化数据结构,以及 Clojure 风格的 atom、future、promise 和 agent,极大地简化了编写并发代码的过程。
Venice 可与 Java 及任何第三方库无缝、透明地集成,让你能够使用大量的库、框架和工具。
Venice 的优势在于让复杂的脚本编写和自动化任务变得简单。你是否曾感到受限于 Bash 或 PowerShell 脚本?使用 Venice,你可以毫不费力地编写简洁优雅的跨平台脚本。
Venice 不依赖任何运行时库(JVM 除外)。你可以轻松地将其作为独立 JAR 包添加到 classpath 中。
Venice 需要 Java 8 或更高版本。
想在一个交互式 REPL 环境中试用 Venice 吗? 在 Gitpod 上测试
你可以从 Maven 中央仓库获取:
<dependency>
<groupId>com.github.jlangch</groupId>
<artifactId>venice</artifactId>
<version>1.12.52</version>
</dependency>
在命令行中,于项目主目录运行 ./gradlew shadowJar,以调用 Gradle 任务来构建 Venice JAR。
在 MacOS / Linux 上
克隆 Venice git 仓库后,为 gradlew 赋予执行权限……
venice% chmod +x ./gradlew
……然后构建项目
venice% ./gradlew clean shadowJar
在 Windows 上
C:\Users\foo\venice> gradlew.bat clean shadowJar
我接受通过 GitHub 提交的 Pull Request。以下是一些能让 PR 更容易被合并的指南:
本代码基于 Apache License v2 许可证。