cpprussia C++ Russia 2020 Msc (29.06.2020 — 02.07.2020)

Applying the "hourglass" principle in library design


Presenting a technique for assuring ABI compatibility for a closed-source library across environments and versions.

Sergey will introduce an approach to designing libraries using the "Hourglass Principle.” It applies when a thin C layer is introduced between a rich interface in C++ (or another programming language) and a rich implementation in C++. This is not merely a decoupling between the public API and the private implementation, but a way of guaranteeing ABI compatibility between different compilers and compiler versions, as well as between various versions of the library.

Speaker will explain how adhering to the principle allows for better compatibility on multiple platforms. He will also demonstrate how to implement the principle in a type-safe manner and provide guidelines for adapting common software design practices to the hourglass.