|
libkeepass 0.2.0
KeePass key database importer/exporter library
|
libkeepass is in the 0.x series. The public source API is the interface we document and test; the binary ABI is not stable before 1.0. This document describes what consumers can rely on and how changes are staged.
CMakeLists.txt and is also used by the Conan recipe and kpx.MAJOR (from 1.0) for incompatible API/ABI changes,MINOR for backwards-compatible functionality,PATCH for backwards-compatible fixes.0.x, a minor bump may contain source-breaking changes when a security or correctness fix requires it. Every such change is listed under Changed/Breaking in CHANGELOG.md with a migration note.VERSION and SOVERSION 0 (liblibkeepass.so.0), making the 0.x ABI generation explicit. Before 1.0 consumers should still rebuild against the matching library rather than rely on ABI compatibility; a major bump will change the soname.Cipher, Visitor); concrete classes are final where possible.LIBKEEPASS_API marks exported symbols. Inline/template helpers in public headers are part of the source API but not of the ABI.std::string, std::vector, std::shared_ptr, ...) mean that ABI compatibility is only guaranteed for the same standard library and compiler ABI.[[deprecated("use ...")]] and mentioned in the changelog.0.x and in a major release after 1.0, with a CHANGELOG.md entry and (where applicable) a migration section in docs/migration-*.md.PImpl for KeePass, KdbxFile and the format codecs so their layout and third-party dependencies (OpenSSL) do not leak into the ABI.-fvisibility=hidden plus explicit exports on all platforms.libkeepass-c, see capi/include/libkeepass-c.h) is available now and has its own deliberately small surface for language bindings. It follows the same deprecation policy; the C++ API is not a stable ABI for FFI consumers.