2024-07-12 –, Method (1.5)
Would you like to have access to your favourite C/C++ library from Julia, but don't know where to start? Follow this case-study for the development of MuJoCo.jl, which highlights the steps and tools required to create one of these packages.
Slides at https://cbindings-jc2024.netlify.app/
As a large and frequently updated C library, MuJoCo serves as a great case study to showcase what it takes to develop high quality bindings for Julia. In this talk, we follow the development of MuJoCo.jl, covering the following topics:
- Writing a script using BinaryBuilder.jl to generate a cross-platform JLL binary for your package.
- Creating a basic Julia wrapper for your JLL with automatic source code generation using Clang.jl.
- Taking your package to the next level by writing an automated script to scrape documentation and generate native bindings, converting to Julia types when necessary.
- Keeping your package up-to-date with minimal maintenance.
By the end of this talk, you should know what is needed to develop a portable, high-performance, user-friendly and well-documented package that gives the Julia community seamless access to an existing C/C++ library.
Jamie Mair is a Research & Teaching Fellow at the University of Nottingham, where he instructs the Reinforcement Learning strand of the Machine Learning in Science Master's programme. Throughout his research career, Jamie has advocated for the use of Julia in academic research. He has delivered several internal talks and presentations aiming to introduce Julia to a wider audience. These resources have culminated and been developed into in a comprehensive lecture series, designed for postgraduate students, focusing on High Performance Computing using Julia.
Jamie received his PhD in Machine Learning and Statistical Physics, along with his BSc in Theoretical Physics from the University of Nottingham.