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.

