Skip to content
jank-langPublic

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3.3k stars

Watchers

43 watching

Forks

Latest commit

 

History

5,011 Commits

Folders and files

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

Code of conduct

Contributing

Security policy

Stars

3.3k stars

Watchers

43 watching

Forks

Sponsor this project

Used by

Contributors

Languages