Build Status

Clojars Project

Welcome to Datajure! This is an open-source domain-specific language for data processing developed at HKU Business School.

To get started, please go through the quick start instructions, read our docs and try our examples.

To know more about our design and implementation ideas, please read our posts.


Domain Specific Language (DSL) is a computer language, declared syntax or grammar that is specialised to a specific application. In contrast to General-Purpose Language, implemenation of DSL is designed with specific goals in that application domain. The use of macros in Lisp dialects enables developers to rewrite source code at compile time, making implementation of DSL more convenient. As one of the Lisp dialects, Clojure also inherits such advantage. In addition to macros, the heavy use of core data literals in Clojure also gives an extensive developing opportunity in implementing DSLs.

In this project, a DSL extension to existing data processing libraries, including, tablecloth, clojask and geni, will be developed. A generic query using core data literal serves as the foundation of the DSL. This enables huge flexibility in defining the syntax, subject to Clojure’s limitation.

Report Bugs

Datajure is currently under active development.
If you find any bugs or errors, we would appreciate if you could help report these issues so that we could repair them accordingly.

Copyright © 2024 Datajure
Powered by Cryogen