KDE Frameworks は、複数のオペレーティングシステム上のQtベースのソフトウェア スタックやアプリケーションですぐに利用できるライブラリとソフトウェア フレームワークのコレクションです。[ 6 ]ハードウェア統合、ファイル フォーマットのサポート、追加のグラフィカル コントロール要素、プロット機能、スペル チェックなど、頻繁に必要とされる機能ソリューションを備えたこのコレクションは、 KDE PlasmaおよびKDE Gearの技術的基盤として機能します。GNU Lesser General Public License (LGPL)の下で配布されています。[ 7 ] 2025 年 9 月現在、最新の安定版リリースは KDE Frameworks 6 (KF6) です。
KDE FrameworksはQtをベースとしており、よりシンプルなJavaScriptベースの宣言型プログラミング言語であるQMLをユーザーインターフェースの設計に広く利用することを可能にしています。QMLで使用されるグラフィックレンダリングエンジンにより、さまざまなデバイス間でよりスムーズなユーザーインターフェースを実現できます。[ 8 ]

KDEソフトウェアコンパイルがKDE Frameworks 5、KDE Plasma 5、KDE Applicationsに分割されて以来、各サブプロジェクトは独自の開発ペースを選択できるようになりました。KDE Frameworksは毎月リリースされ[ 9 ]、Gitを使用しています[ 10 ] [ 11 ]。
KDE Platform 4 と並行して KDE Frameworks をインストールできるようにすることで、アプリはどちらでも使用できるようになるはずです。[ 12 ]
プラットフォームリリースとは、シリーズの開始バージョン(バージョン番号 X.0)のことです。これらのメジャーリリースのみが、前バージョンとのバイナリ互換性を損なうことが許可されています。マイナーシリーズ(X.1、X.2、…)のリリースは、バイナリ移植性(APIおよびABI)を保証します。これは、たとえば、KDE 3.0 用に開発されたソフトウェアが、すべての(将来の)KDE 3 リリースで動作することを意味 します。ただし、KDE 2 用に開発されたアプリケーションは、 KDE 3 ライブラリを利用できることが保証されているわけではありません 。KDE のメジャーバージョン番号は、主に Qt のリリースサイクルに従っており、KDE SC 4 は Qt 4 をベースにしており、KDE 3 は Qt 3 をベースにしています 。
各フレームワークのリポジトリには、 metainfo.yamlという名前のファイルが含まれている必要があります。[ 13 ]このファイルには、フレームワークのメンテナー、タイプ、サポートされているオペレーティングシステム、その他の情報が記述されています。現在サポートされているプラットフォームは、Linux、Microsoft Windows、macOS、Android です。
フレームワークには明確な依存関係構造があり、「カテゴリ」と「階層」に分かれています。「カテゴリ」とは、実行時の依存関係を指します。
KDE Frameworks バンドルは 70 を超えるパッケージで構成されています。これらはKDE SC 4では kdelibs と呼ばれる単一の大きなパッケージとして存在していました。Kdelibs はいくつかの個別のフレームワークに分割され、そのうちのいくつかは KDE の一部ではなくなりましたが、Qt 5.2 に統合されました。[ 14 ]
KDEフレームワークは、他のライブラリへの依存度に応じて4つの異なる階層に分類されます。[ 15 ] [ 16 ]
Kirigamiは、Marco Martin [ 19 ]によって開発されたQMLアプリケーションフレームワーク[ 18 ]で、開発者はコードの変更なしにAndroid、iOS、Windows、Plasma Mobile、およびあらゆる従来のLinuxデスクトップ環境でネイティブに動作するアプリケーションを作成できます。
これは、例えばLinus Torvaldsと Dirk Hohndels のスキューバダイビングアプリケーション Subsurface、メッセンジャークライアント Banji [ 20 ] 、 Kaidan メッセンジャー[ 21 ] 、 Vvave ミュージックプレーヤー、KDE ソフトウェアセンター Discover など、さまざまなアプリケーションで使用されています。
Linux ディストリビューションは、配布するソフトウェアをパッケージ化するためにパッケージ管理システムを使用します。たとえば、Debian はKGlobalAccel をlibkf5globalaccel というパッケージ名で配布していますが、[ 22 ] Fedora Linux はkf5-kglobalaccelという名前で配布しています。[ 23 ]
主にC++で記述されているが、他のプログラミング言語用のバインディングも利用可能である。
これらのバインディングおよびその他のバインディングは、以下の技術を使用しています。
5.0 リリースに先立って、テクノロジー プレビュー、2 つのアルファ リリース、および 3 つのベータ リリースが行われました。[ 24 ] [ 25 ] [ 26 ]
KDE Frameworks のソースコードは、KDElibs 1 の頃から存在しています。KDE Frameworksとしての最初のリリースはバージョン 5 でしたが、これはコードベースが KDE Platform バージョン 4 ( KDE Platformの唯一のメジャーバージョン) であったことを考慮したものです。
KDE Platformから KDE Frameworks への移行は、KDE のトップ技術貢献者によって主導され、2013 年 8 月に開始されました。[ 8 ]
KDE Frameworks 5.0 の最初のリリース後、開発者は KDE Frameworks 5 のコンポーネントに新機能を追加することに注力しました。[ 27 ]例としては、 Firefoxの KDE への統合の改善が挙げられます。[ 28 ]
Frameworks 5 の主な改善点は、モジュール化です。以前の KDE バージョンでは、ライブラリは単一の大きなパッケージとしてバンドルされていました。Frameworks では、ライブラリは個別の小さなパッケージに分割されています。これにより、依存関係を最小限に抑えることができるため、他の Qt ベースのソフトウェアによるライブラリの利用が容易になります。[ 8 ]
KDE 4はQtウィジェットツールキットのバージョン4に基づいていたが、Frameworks 5はバージョン5に基づいている。
KDEプロジェクトの「MegaRelease 6」の一環として、2024年2月28日にKDE Frameworks 6がリリースされ、Qt 6ベースにアップグレードされました。[ 29 ]
KDE SC 4 の時代には、いわゆるKDE プラットフォームは、KDE Plasma およびアプリケーションに必要なすべてのライブラリとサービスで構成されていました。Qt 5 以降、このプラットフォームは、現在 KDE フレームワークと呼ばれるモジュールのセットに変換されました。これらのモジュールには、Solid、Nepomuk、Phononなどがあり、LGPL、BSD ライセンス、MIT ライセンス、または X11 ライセンスのいずれかでライセンスされています。[ 30 ]
KDEソフトウェアコンパイル以外にも、 LXQt、MoonLightDE、Hawaiiといったデスクトップ環境 を採用している例がある。
Calligra SuiteのラスターグラフィックエディタであるKritaのバージョン 3.0 は、2016 年 5 月 31 日にリリースされ、KDE Frameworks 5 と Qt 5.2 に依存しています。
Kirigamiの登場により、 Amarok、Avogadro、Trojitá、Subsurfaceといったアプリケーションでの利用も増加しています。