Jank
The native Clojure dialect hosted on LLVM with seamless C++ interop.
Install / Use
/learn @jank-lang/JankREADME
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
; Comments begin with a ;
(println "meow") ; => nil
; All built-in data structures are persistent and immutable.
(def george {:name "George Clooney"}) ; => #'user/george
; Though all data is immutable by default, side effects are adhoc.
(defn say-hi [who]
(println (str "Hi " (:name who) "!"))
(assoc who :greeted? true))
; Doesn't change george.
(say-hi george) ; => {:name "George Clooney"
; :greeted? true}
; Many core functions for working with immutable data.
(apply + (distinct [12 8 12 16 8 6])) ; => 42
; Interop with C++ can happen *seamlessly*.
(defn sleep [ms]
(let [duration (cpp/std.chrono.milliseconds ms)]
(cpp/std.this_thread.sleep_for duration)))
Sponsors
If you'd like your name, company, or logo here, you can sponsor this project for at least $25/m.
<br/> <p align="center"> <a href="https://www.clojuriststogether.org/"> <img src="https://www.clojuriststogether.org/header-logo.svg" height="100px"> </a> </p> <p align="center"> <a href="https://nubank.com.br/"> <img src="https://upload.wikimedia.org/wikipedia/commons/f/f7/Nubank_logo_2021.svg" height="100px"> </a> </p> <!-- mkarp --> <p align="center"> <a href="https://pitch.com/"> Misha Karpenko </a> </p> <!-- stijlist --> <p align="center"> <a href="http://www.somethingdoneright.net/about"> Bert Muthalaly </a> </p> <!-- modulr-software --> <p align="center"> <a href="https://github.com/modulr-software"> modulr-software </a> </p> <!-- multiplyco --> <p align="center"> <a href="https://multiply.co/"> multiply.co </a> </p> <!-- keychera --> <p align="center"> <a href="https://keychera.github.io/"> keychera </a> </p> <!-- fosskers --> <p align="center"> <a href="https://github.com/fosskers"> Colin Woodbury </a> </p>In the news
<div align="center">| <img src="https://i0.wp.com/2023.clojure-conj.org/wp-content/uploads/2019/06/clojure.png?resize=150%2C150&ssl=1" height="100px"><br /><sub><b>Clojure Conj 2023</b></sub><br /> | <img src="https://user-images.githubusercontent.com/1057635/193151333-449385c2-9ddb-468e-b715-f149d173e310.svg" height="100px"><br /><sub><b>The REPL Interview</b></sub><br /> | <img src="https://github.com/jank-lang/jank/assets/1057635/72ff097c-578c-46f8-a727-aae6dcf2a82f" width="100px"><br /><sub><b>Language Introduction</b></sub><br /> | <img src="https://github.com/jank-lang/jank/assets/1057635/9788a7c8-93da-47ea-8d1d-8a258a747942" width="100px"><br /><sub><b>Compiler Spotlight</b></sub><br /> | | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-: | :-: |
</div>Related Skills
node-connect
326.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
80.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
326.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
80.4kCommit, push, and open a PR
