← All stories
● Covered by 1 source · 1 reportMedium impact1 neutral

Jank: A New Clojure Dialect with Native C++ Interoperability

🔄 Updated 15d ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • Jank is a Clojure dialect with native C++ interop.
  • It supports C++ features like templates, virtual functions, and RAII.
  • Jank uses a Clang-based C++ JIT compiler for REPL development.
  • It compiles to C++ and uses Leiningen for project management.

Introducing Jank: Clojure on C++

Jank is a new dialect of Clojure that operates directly on top of C++. Unlike other languages, it provides native C++ interoperability, allowing seamless integration with C++ features such as templates, virtual functions, exceptions, overload resolution, and RAII. This design eliminates the need for boilerplate code, enabling developers to include C++ headers and utilize C++ functionalities directly within their Clojure projects.

Interactive Development and Compilation

Jank supports interactive REPL-driven development, powered by a Clang-based C++ JIT compiler. This allows for dynamic compilation of C++ code during development. The dialect is a full Clojure implementation, but it replaces Java interoperability with C++ interoperability. It can include any C++ source, link to C or C++ libraries, and utilizes the C++ type system. Jank itself compiles down to C++.

Project Management and Dependencies

Project management in Jank is based on Leiningen, a common tool in the Clojure ecosystem. It features a native build system that simplifies the inclusion of C and C++ dependencies. This system can locate installed native dependencies or build them from source, making dependency management straightforward with minimal configuration changes.

Applications and Performance

Jank aims to bring functional, immutable data structures and REPL-driven development to areas requiring high performance, such as game development. Its direct C++ interop means developers can access C++ performance whenever needed, without the overhead of bridges, function/type registration, marshalling, or callbacks. This direct integration allows for efficient use of C++ libraries and frameworks within a Clojure environment.

✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →

The daily brief

One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.

One email a day. Unsubscribe in one click, any time.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~4 min · 3 stories · Nov 07

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Primary sources

GitHub jank-lang/jank

Reporting from

Jank is a new Clojure dialect built on C++ that offers direct C++ interoperability, allowing Clojure code to interact with C++ features like templates, virtual functions, and RAII without boilerplate. This development provides Clojure developers with a way to integrate high-performance C++ components directly into their projects, expanding the language's application areas.