Rediscovering fire - on designing portable, multi-language libraries

C++

The session will cover the design choices and lessons learned developing the multi-language free library segyio, or more conceptually, designing libraries for libraries.

Briefly, it will discuss:

  • Stable API, ABI, and how to design them for the future
  • How to design C-interface libraries that allows for good foreign-language libraries (in our case python)
  • Library design philosophy and the beauty of primitive functions
  • How to design for composition and caller flexibility
  • Plumbing and porcelain
The session should appeal both to library developers for embedded systems, and consumers of higher-level libraries in desktop and scientific applications, as the topic covered is the bridge between primitive and sophisticated systems, and making it beautiful.