One of Clojure’s strengths is its host interop, but sometimes you really want to call some C code. Perhaps you have a legacy .so/.dll you inherited; perhaps you’re calling a video decoder or some cryptographic routines. This talk focuses on that interop, using a cryptographic library (caesium, which binds libsodium) as a specific example. It shows how Clojure can still leverage its strengths in this context, providing a significantly better environment for both R&D and general use compared to either plain Java or even other high-level C-centric programming environments like Python. This talks includes the mechanics of accomplishing this, lessons learned managing a real library used in production, and future efforts to make this process smoother for future programmers (e.g. manylinux1).
lvh is a cryptographer and distributed systems engineer. His beard solves discrete logs in fields of small characteristic.