Skip to content
Evaluate Javascript code and libraries in Clojure
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
src/evaljs Added coercions for nil Mar 4, 2012
test/evaljs/test Added coercions for nil Mar 4, 2012
.gitignore Initial commit Mar 4, 2012 Released 0.1.2 Mar 4, 2012
project.clj Released 0.1.2 Mar 4, 2012


Evaljs is a library for evaluating Javascript code in Clojure.


Add the following dependency to your project.clj file:

[evaljs "0.1.2"]


You'll need both the evaljs.core and evaljs.rhino namespaces for this to work:

(use 'evaljs.core)
(use 'evaljs.rhino)

You can then evaluate a Javascript expression within a blank context:

(with-context (rhino-context)
  (prn (evaljs "1 + 1")))

Or a context with a map of initial variables:

(with-context (rhino-context {:x 2})
  (prn (evaljs "x + 1")))

The return value of evaljs is the last statement executed. Basic types like maps and arrays are automaitcally converted between Clojure and Javascript types.

If you want to import a Javascript library, you can evaluate an I/O object such as a file or resource:

(require '[ :as io])

(with-context (rhino-context)
  (evaljs (io/resource "some/js/library.js"))
  (evaljs "someJSLibrary()"))


Copyright (C) 2012 James Reeves

Distributed under the Eclipse Public License, the same as Clojure.

Something went wrong with that request. Please try again.