Skip to content

Details

clj-aus is Australia's Clojure meetup, and this is our first session. It's online, so anyone in the country can join.

THE TALK — Three native Clojures, one C game library

Raylib is a C game library, Clojure isn't just one language any more, so this talk runs the same raylib examples under three different Clojures and looks at where each one puts the boundary to C:

• Jolt — Clojure on Chez Scheme, calling libraylib directly over its C ABI through Jolt's FFI. No wrapper library, no codegen, no C shim.

• jank — Clojure compiled to a native binary through C++/LLVM, where (:include "raylib.h") turns raylib into ordinary interop.

• JVM Clojure — over coffi and JDK 22+'s Panama Foreign Function & Memory API, where the runtime does the marshalling for you.

The interesting part is the ABI. raylib passes structs by value everywhere, and each host earns a different answer to that problem. Reading the same example three ways is the clearest map I know of where each runtime draws its line.
All three suites are open source, and there will be live demos running throughout.

FORMAT

A tight hour, and we run to time: five minutes of hellos, 35 minutes of talk, 20 minutes of questions, finished by 7:30. If the conversation is still going, it carries on in the event chat afterwards.

LIGHTNING TALKS

From session two onward, every clj-aus meetup has a lightning-talk slot. If you've built something in Clojure, ClojureScript, ClojureDart or Babashka — or you're learning and want to share what tripped you up — say so in the comments and we'll book you in. First-time speakers especially welcome.

WHO SHOULD COME

Anyone who writes Clojure, used to, or is simply curious. If you're arriving from Java, Python or JavaScript and have never written a parenthesis in anger, this is a good one to start with: it's about how languages reach C, not about Clojure trivia.
The joining link will be posted here closer to the date. The session will be recorded and published afterwards.

You may also like