KDE Libraries

KDE Frameworks

The KDE Frameworks build on the Qt framework, providing everything from simple utility classes (such as those in KCoreAddons) to integrated solutions for common requirements of desktop applications (such as KNewStuff, for fetching downloadable add-on content in an application, or the powerful KIO multi-protocol file access framework).

The KDE Frameworks can be used in CMake-based and QMake-based projects, and most of them are portable to at least Windows, Mac and Linux. The documentation of each framework has code snippets that show how to include the framework in a QMake or CMake project.

The frameworks are divided into four tiers, based on the kind of dependencies that they have. For instance, Tier 1 frameworks depend on Qt and possibly some third-party libraries, but not on other frameworks. This makes them easy to integrate into existing applications.

Tier 0

Tier 1

Tier 1 frameworks depend only on Qt (and possibly a small number of other third-party libraries), so can easily be used by any Qt-based project.

Tier 2

Tier 2 frameworks additionally depend on tier 1 frameworks, but still have easily manageable dependencies.

Tier 3

Tier 3 frameworks are generally more powerful, comprehensive packages, and consequently have more complex dependencies.

Tier 4

Tier 4 frameworks can be mostly ignored by application programmers; this tier consists of plugins acting behind the scenes to provide additional functionality or platform integration to existing frameworks (including Qt).

Other Libraries

These libraries are also offered by the KDE Community but don't neccesarily provide the same quality standards and compatibility promises as the KDE Frameworks.

Plasma

Plasma is a desktop environment for Linux and FreeBSD but it's built as a platforms in which plugins can be built to extends its features or completely new desktop environment can be built on top.

KDE PIM

KDE PIM provides a set of libraries and applications to access and manage personal information like emails, contacts, events, etc.

KDE PIM provides a set of libraries to parse and interact with various standardized PIM data formats, like RFC822 (KMime), ICAL (KCalendarCore) or VCARD (KContacts).

The backbone of the entire suite is Akonadi, the PIM storage framework. Akonadi provides unified API to access and manage any kind of PIM data regardless of the actual storage backend.

There are quite a few other libraries that provide PIM-specific widgets and utilities and can be useful for application developers who need to work with PIM data in their projects.

Please note that unless stated otherwise, none of the libraries have stable API or ABI as of now. We are trying to keep the changes small and we always announce big changes ahead on the mailing lists, but as the project evolves we might need to adjust some API here and there.

Other