Skip to content

jank-lang/jank

jank banner

CI

What is jank?

Most simply, jank is a Clojure dialect on LLVM with C++ interop. Less simply, jank is a general-purpose programming language which embraces the interactive, functional, value-oriented nature of Clojure and the desire for the native runtime and performance of C++. jank aims to be strongly compatible with Clojure. While Clojure's default host is the JVM and its interop is with Java, jank's host is LLVM and its interop is with C++.

jank is currently in alpha! Look here for details.

Docs

Read the jank book.

Appetizer

(ns my.app.filesystem
  (:include "boost/filesystem.hpp")
  (:refer-global :rename {boost.filesystem.file_size file-size}))

(defn file-info [file-path]
  (try
    (let [bytes (file-size (cpp/cast std.string file-path))]
      {:path file-path
       :size bytes})
    (catch boost.filesystem.filesystem_error e
      {:path file-path
       :error (.what e)})))

(file-info "/etc/passwd")
; {:path "/etc/passwd", :size 4025}

(file-info "/root/.bash_history")
; {:path "/root/.bash_history"
;  :error "boost::filesystem::file_size: Permission denied [system:13]: \"/root/.bash_history\""}

Sponsors

If you'd like your name, company, or logo here, you can sponsor this project for at least $25/m.


Bert Muthalaly

modulr-software

multiply.co

keychera

Colin Woodbury

pete23

Arik Rahman

In the news

About

jank is the native Clojure dialect with seamless C++ interop.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

3.3k stars

Watchers

43 watching

Forks

Sponsor this project

  •  

Contributors