Skip to content
/ venice Public

Venice, a Clojure inspired sandboxed Lisp dialect with Java interoperability serving as a safe scripting language.

License

Notifications You must be signed in to change notification settings

jlangch/venice

Repository files navigation

Venice

Venice is a Clojure inspired sandboxed Lisp dialect with excellent Java interoperability.

Overview

Venice is a Lisp dialect born from the need for a safe, sandboxed language that is suitable to drive standalone applications as well as serving as a scripting and expression language that can be used to implement scriptable extension points and rules for applications.

Venice supports macros, tail-recursion, dynamic code loading, dynamic (thread-local) binding. It comes with excellent Java interoperability, and a configurable sandbox that can prevent all sorts of dangerous JVM interactions like reading/writing files, invoking System.exit(0) or any other malicious action. Venice has been designed from the ground-up with a sandbox making it a first class citizen.

Venice's immutable persistent data structures together with Clojure style atoms, futures, promises, and agents greatly simplify writing concurrent code.

Because Venice does not depend on any runtime libraries (other than the JVM) you can easily add it as standalone .jar to your classpath.

Venice requires Java 8 or newer.

Cheat Sheet

Cheat Sheet: HTML PDF

Documentation