logo_kerberos.gif

Interface stability

From K5Wiki
Jump to: navigation, search

Stability level

We need a concise taxonomy of stability levels for interfaces.

API vs ABI

API stability essentially says that if someone writes a third-party program using one of our APIs, any future changes to our sources will allow the program to continue to compile and function as intended. It does not necessarily mean that a third-party program dynamically linked (against shared libraries, etc.) will continue to function if, for example, old shared libraries are replaced with ones from a newer release.

ABI stability roughly means that if a third-party application is dynamically linked against our shared libraries, it will continue to function as intended when the shared libraries are upgraded to those of a newer release.

Public interfaces

These can be APIs, ABIs, file formats, command line interfaces, etc.

krb5 API

API and ABI stability.

GSS-API

GSS-API is standardized by the IETF. We make some implementation choices that we should keep stable. We also make some extensions to the GSS-API.

API and ABI stability for the standardized interfaces and our extensions.

Semi-public interfaces

These can potentially be things such as internal implementation APIs.