Are there any Clojure DSLs?

Like any Lisp dialect, Clojure draws a very fuzzy line between API and DSL and therefore the term doesn’t hold the same mystique that it does in other languages. Lisp programmers tend to write their programs as layers of DSLs, each layer serving those above it. Having said that, here are a few that you could say display non-trivial levels of DSL-ness (in no particular order):

  • Enlive (HTML templating)
  • LazyTest (Unit testing)
  • fnparse (parser generator)
  • Midje (testing & mocking)
  • byte-spec (binary-formats)
  • Vijual (graph layout)
  • Trammel (constraint programming)
  • Cascalog (Hadoop w/ datalog syntax)
  • Incanter (R-like environment)
  • Sandbar (HTML sessions, forms, auth)
  • ClojureQL (SQL)
  • mini-kanren (embedded logic programming)
  • Leiningen (build tool)
  • sexpbot (IRC bot with plugin arch)

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)