(rough draft; still mostly a stub)
Latest revision as of 17:19, 5 May 2008
 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 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.