• Increase font size
  • Default font size
  • Decrease font size


Application Programming Interface (API) design is the practice of creating software components that are easy to reuse and are evolved with minimal impact on clients. If you are a C++ programmer writing code that is consumed by other developers, you need to master the principles of API design. A good design can be your project’s most important feature, but conversely a bad design can contribute to the instability, decay, and eventual demise of your software.

Despite this, the techniques of API design are rarely taught to engineers. These skills are normally only gained through experience—by making mistakes and learning empirically what does and does not work. This book aims to address this deficiency: to distill the strategies of world-class C++ API development. Interfaces are the most important code you develop. This book will teach you how to write elegant and industrial-strength APIs that will last for the long term.

The book covers lots of object-oriented design material and many handy C++ tips and tricks to help you produce better APIs. It also covers the full breadth of API development, from initial design through implementation, testing, documentation, release, versioning, maintenance, and deprecation. It even covers specialized API topics such as creating scripting and plugin APIs.

If you write C++ code that another engineer relies upon, you’re an API designer and this book has been written for you.

You can download the flyer for API Design for C++. This 2-page PDF document provides an overview of the book, describes key features, and provides a top-level table of contents.

You can also download a sample PDF chapter of API Design for C++. Chapter 3 covers various design patterns and idioms that are useful for C++ APIs, including the Pimpl Idiom, Singleton, Factory Method, Proxy, Adapter, Facade, and Observer.


An Application Programming Interface (API) provides a logical interface to a piece of software and hides its internal details. This website is dedicated to a book on designing APIs for C++ and includes articles and links on API development.


The book is accompanied by a source code package that contains many of the examples in the text. Download it for free.


Dr. Reddy has also published a computer graphics book called Level of Detail for 3D Graphics. Check it out too!.
Copyright (c) 2023 Martin Reddy. All rights reserved. Login