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.
-
Open Collaboration Services API
-
Qt wrapper for BlueZ 5 DBus API
-
-
The KDE calendar access library
-
-
-
-
-
Add support for global workspace shortcuts
-
-
Holiday calculation library
-
Advanced internationalization framework
-
-
QtQuick plugins to build user interfaces based on the KDE human interface guidelines
-
Models for Qt Model/View system
-
Widget addons for Qt Model/View
-
Lightweight plotting framework
-
A QtQuick module providing high-performance charts
-
-
Library to allow application developers to separate the structure of documents from the data they contain
-
-
-
Access to the windowing system
-
Qt wrapper for ModemManager API
-
Qt wrapper for NetworkManager API
-
Barcode abstraction layer providing uniform access to generation of barcodes
-
Hardware integration and detection
-
Support for spellchecking
-
High-level multithreading framework
Tier 2
Tier 2 frameworks additionally depend on tier 1 frameworks, but still have easily manageable dependencies.
-
Abstraction to system policy and authentication features
-
Classes to interact with KColorScheme
-
Text completion helpers and widgets
-
Support for vCard contacts
-
Support for application crash analysis and bug report from apps
-
Provides integration of QML and KDE Frameworks
-
A file metadata and text extraction library
-
Abstraction for system notifications
-
Library to load and install packages of non binary files as they were a plugin
-
-
Library for querying installed applications and their associated file types
-
Implementation of Status Notifier Items
-
Support for unit conversion
-
An RSS/Atom parser library
Tier 3
Tier 3 frameworks are generally more powerful, comprehensive packages, and consequently have more complex dependencies.
-
Baloo is a file indexing and searching framework
-
Support for bookmarks and the XBEL format
-
Utilities for working with KCModules
-
Widgets for configuration dialogs
-
An DAV protocol implementation with KJobs
-
Integration with su for elevated privileges
-
-
Resource and network access abstraction
-
Widgets for tracking KJob instances
-
Support for downloading application assets from the network
-
Configuration system for KNotify
-
Document centric plugin system
-
Provides access to all contacts and the people who hold them
-
Parallelized query system
-
A library for rendering SVG-based themes with stylesheet re-coloring and on-disk caching
-
Advanced embeddable text editor
-
Advanced text editing widgets
-
Secure and unified container for user passwords
-
User configurable main windows
-
Offers available actions for a specific purpose.
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).
-
Workspace and cross-framework integration plugins.
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.
-
Building Blocks for Plasma
-
A Qt style supporting both QtQuick and QtWidgets
-
Plugin based library to create window decorations.
-
Convenient classes to use PipeWire
-
-
Library to retrieve and display information on the current status of computer hardware
-
-
Migration aids for plasma5 deprecated classes
-
-
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.
-
-
-
-
-
Akonadi indexing and searching Library
-
-
-
KDE PIM Grantlee theme support library
-
-
-
-
Implementation of APIs for various Google services
-
-
A job-based API for interacting with IMAP servers
-
Itinerary extraction and data model
-
-
-
-
Kontact Plugin Interface Library
-
Advanced text editor which provide advanced html feature
-
-
Public transport data querying API
-
-
An API for handling TNEF data
-
-
Kleopatra certificate management library
-
-
-
Mail Importer Library implements importing of emails from various other email clients
-
-
Messagelib Library which contains MessageComposer, MessageCore, MessageList, MessageViewer, MimeTreeParser, TemplateParser and WebEngineViewer
-
PimCommon Library which contains PimCommon, PimCommonAkonadi
Other
-
Header-only C++ library for parsing Markdown
-
Add-ons for the Kirigami framework
-
Alkimia API documentation
-
-
Non-blocking database framework for Qt
-
API to build composable asynchronous tasks
-
-
Control cgroup resources through systemd dbus interface
-
Library for interfacing with CDs
-
A thread-safe wrapper around libraw
-
Common code and data for many KDE games
-
Wrapper around Exiv2 library to manipulate picture metadata as EXIF and XMP
-
Digital vaccination, test and recovery certificate parsing
-
KMyMoney Plugin API documentation
-
Library to compare files and strings
-
OSM opening hours expression parser and evaluator
-
OSM indoor map QML component
-
QtQuick plugins for image editing UI
-
-
SANE Library Qt-based interface
-
Qt interface for the SANE library for scanner hardware
-
KStars is free, open source, cross-platform Astronomy Software.
-
Text addons (autocorrection, text to speak, grammar checking, text translator, emoticon support, custom editor, autogenerate text)
-
UnifiedPush client components
-
-
libKEduVocDocument is a library for reading and writing vocabulary files used by Parley, Kanagram, KHangman and KWordQuiz
-
For loading and rendering of Mahjongg tilesets and associated backgrounds
-
Marble framework, a library for maps, virtual globes and world atlases
-
Okular, the unified document viewer
-
GUI components for choosing colors, with focus on an intuitive and perceptually uniform presentation
-
Phonon, the Qt multimedia abstraction library
-
Provides the xml files of non-standard wayland protocols used in Plasma
-
Qt wrapper around polkit-1
-
-
Accessibilty tools helper library, used e.g. by screen readers
-
A library for creating business charts
-
A library for creating Gantt diagrams