Skip to content
Diesel! The DSL engine!
Pull request Compare This branch is 19 commits ahead of Roxxi:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Building a DSL in Clojure seems easy enough with multimethods, but there's still some room for improvement for common enough patterns.

Diesel aims to be a light weight DSL engine, so you can quickly describe a DSL with a nifty table of contents, but still take advantage of the multimethod infrastructure set forth by clojure.

For a nice introduction to building DSLs with Multimethods in Clojure, take a look at this blog post that inspired me to create Diesel on top of multimethods.

Currently Diesel provides small, but useful improvement over above:

  1. Centralized DSL operator definition
  2. The ability to support custom functions to dispatch on
  3. Default constant handling
  4. Default unknown operator handling



In your project.clj add

[com.onekingslane.danger/diesel "1.1.0"]


Currently there is an example usage here and the example illustrated by the afore mentioned blog post is implemented here:


Copyright © 2013 One Kings Lane

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

Something went wrong with that request. Please try again.