| 原作者 | ショーン・アムンドソン |
|---|---|
| 開発者 | GNOME プロジェクト等 |
| 初回リリース | 1998年 |
| 安定リリース | 2.82.4 [1]
/ 2024年12月11日 |
| リポジトリ |
|
| 書かれた | C |
| オペレーティング·システム | Linux、Unix系、macOS、Windows |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 図書館 |
| ライセンス | LGPLv2.1 |
| Webサイト | 詳しくはこちら |

GLib は、 Cで記述され、主にGNOMEによって開発された 3 つ (以前は 5 つ) の低レベル システムライブラリ のバンドルです。 GLib のコードはGTKから分離されたため、 GNOME 以外のソフトウェアでも使用でき、それ以来並行して開発されてきました。
「GLib」という名前は、プロジェクトが GTK C ユーティリティ ライブラリとして始まったことに由来しています。
特徴
GLib は、メモリ チャンク、二重および単一リンク リスト、ハッシュ テーブル、動的文字列、および語彙スキャナ、文字列チャンク (文字列のグループ)、動的配列、バランスバイナリ ツリー、N 項ツリー、クォーク (文字列と一意の整数識別子の双方向の関連付け)、キー付きデータ リスト、リレーション、タプルなどの文字列ユーティリティなどの高度なデータ構造を提供します。キャッシュはメモリ管理を提供します。
GLib は、スレッド、スレッド プログラミング、およびプリミティブ変数アクセス、ミューテックス、非同期キュー、セキュアメモリ プール、メッセージの受け渡しとログ記録、フック関数(コールバック登録)、タイマーなどの関連機能を提供する関数を実装します。GLib には、バイト順序変換や I/O チャネル などのメッセージ受け渡し機能も含まれています。
GLib のその他の機能は次のとおりです。
コンポーネント
GLib パッケージは 5 つのライブラリで構成されていましたが、それらはすべて 1 つのライブラリに統合され、それ以降は単にGLibと名付けられ、スタンドアロン ライブラリとしては維持されなくなりました。元のライブラリは次のとおりです。
これらのうち、GLib、GObject、GIO の 3 つは引き続きソース ツリーの個別のサブディレクトリに存在するため、個別のコンポーネントと考えることができます。これらはソフトウェア スタックと考えることができます。GObject は GLib に依存し、GIO は両方を使用する高レベルの機能を提供します。
歴史
GLib は、現在 GTK と名付けられたGTK+プロジェクトの一部として始まりました。しかし、GTK+ バージョン 2 をリリースする前に、プロジェクトの開発者は、グラフィカル ユーザー インターフェイス(GUI) 用ではないコードを GTK+ から分離することを決定し、GLib を別のソフトウェア バンドルとして作成しました。GLib は別のライブラリとしてリリースされたため、GTK+ の GUI 関連部分を使用しない他の開発者は、完全な GUI ライブラリに依存するオーバーヘッドなしで、ライブラリの非 GUI 部分を使用できました。
GLibはクロスプラットフォームライブラリであるため、オペレーティングシステムとのインターフェースにGLibを使用するアプリケーションは、通常、大きな変更を加えることなく異なるオペレーティングシステム間で移植可能です。[2]
リリース
Glib は現在活発に開発中です。現在の概要については、https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWS を参照してください。以下の表には、1998 年から 2022 年までの主要なパッチ ノートが記載されています。
類似プロジェクト
その他のライブラリは、次のような低レベルの関数とデータ構造の実装を提供します。
- Microsoft Foundation Class ライブラリ(MFC) – C ベースのWindows APIに対するオブジェクト指向のC++ ラッパー ライブラリ。データ構造やその他の便利な機能も含まれています。
- 標準テンプレートライブラリ(STL) – データ構造とアルゴリズムの C++ ライブラリ
- Boost – C++ 向けのスレッドプリミティブなどの機能を提供します。これは、GLib が C 向けに提供している機能に似ています。
- QtCore – Qt フレームワークのコア API
- wxBase – wxWidgetsライブラリの非 GUI 関数
- Apache Portable Runtimeと Apple Core Foundation はGLib と機能的に大きな重複があり、C で多くの同様の OS ポータブルなスレッド、ネットワーク、およびデータ構造の実装を提供します。
- Gnulib - GNU 移植性ライブラリ
参考文献
外部リンク
- GLib API ドキュメント
- GLib Git ソースツリー
