Libraries

GNOME 平台库的概述。

用户界面

GNOME 的用户界面库被所有 GNOME 应用程序使用。它们提供了创建美观易用的应用程序界面的所有必需内容。

GTK

GTK 是 GNOME 的用户界面工具包,是创建应用程序用户界面的全面资源。它包含各种用户界面小部件,并提供对各种系统级功能的访问。

libadwaita

Libadwaita 通过额外的部件和类补充 GTK。它用于实现 GNOME 人机界面指南中记录的标准 GNOME 设计模式。

WebKitGTK

WebKitGTK 允许将 Web 功能添加到应用程序中,例如 HTML 渲染和嵌入式 Web 视图。

字体与渲染

GTK 提供了简单的文本显示和样式。GNOME 平台还包含一组较低级别的字体渲染和布局库,应用程序有时可能需要直接使用它们来获得更专业的字体和排版功能。

Fontconfig

Fontconfig 提供对系统上可用字体的访问。它提供有关可用字体的详细信息,以及根据诸如语言覆盖范围之类的标准匹配字体的功能。

FreeType

FreeType 是 GNOME 平台使用的字体渲染库。大多数应用程序可能不需要直接使用 FreeType。但是,对于专业的字体和排版功能,它可能很有用。

HarfBuzz

HarfBuzz 是 GNOME 平台使用的文本塑形库。除非应用程序包含字体或排版功能,否则大多数应用程序可能不需要直接使用 HarfBuzz。

Pango

Pango 是一个文本布局库。它在国际化中发挥着重要作用,具有完整的 Unicode 支持,并支持各种书写系统。Pango API 通过 GTK 暴露,可用于诸如将文本设置为粗体或斜体之类的操作。

图像加载

gdk-pixbuf

gdk-pixbuf 是一个图像加载库,由 GTK 使用。对于简单的图像加载和显示,通常可以直接使用 GTK。但是,gdk-pixbuf 提供了有用的功能,用于对图像作为像素缓冲区进行操作,例如更改颜色或从多个图像创建合成图像,并保存结果。

librsvg

librsvg 是一个渲染可缩放矢量图形 (SVG) 的库。它可以用于从 GTK 和 gdk-pixbuf 显示静态 SVG 资源,或将 SVG 文档渲染到 Cairo 表面。

glycin

Glycin 允许将图像解码为 GdkTextures 并提取图像元数据。图像解码发生在沙盒化的模块化图像加载器中。

2D 绘图:Cairo

Cairo 可用于绘制自定义 2D 图形。这些可以嵌入到 GTK 用户界面中,方法是在 GTK 部件上进行绘制。图形也可以输出到 PDF 和 SVG。Cairo 图形与分辨率无关且具有抗锯齿效果。

文件系统访问与操作:GFile

GIO 提供了一个强大的虚拟文件系统抽象层。其 GFile 接口可用于从文件系统读取信息(例如遍历目录、查询文件元数据等)以及执行文件操作。GFile 还可以用于监视文件和目录的变化。

IPC:GDBus

D-Bus 是 GNOME 中使用的主要 IPC 系统之一,用于应用程序和服务之间的通信。应用程序可以使用 D-Bus 与系统服务进行通信,例如与硬件相关的守护程序,或用于其自身进程之间的通信。

GDBus 包含在 GIO 库中,并提供了 D-Bus 协议的全面实现,以及实现 D-Bus 接口的提供者和消费者的 API。

多媒体:GStreamer

GTK 4 包含自己的内置视频播放功能,可用于简单的视频播放。对于其他多媒体需求,GStreamer 是 GNOME 平台的一个集成部分,可用于简单的音频和视频播放,到复杂的非线性多媒体编辑。

设置:GSettings

GSettings 是 GNOME 库,用于读取和写入用户设置。它允许存储各种设置类型,包括整数和字符串数组。

数据存储

GNOME 平台包含各种不同的数据存储库,适用于各种需求和用途。

GMarkup

GMarkup 是一个 XML 解析器,可用于读取/写入简单的 XML。它适用于由同一应用程序读取和写入且不在程序之间共享的数据。

libxml2

Libxml2 是一个高度符合标准的 XML 解析器/生成器。它适用于读取和写入在不同项目之间共享的 XML,并具有定义的规范和 XML 模式。Libxml2 的示例用途包括文档渲染和编辑。

Keyfiles

键值文件是 INI 样式的 文件,可用于存储(分组的)键/值对。键值文件的示例是用于描述应用程序的 桌面文件

JSON-GLib

JSON-GLib 使用 GLib 和 GObject 实现了一个完整的 JSON 解析器和生成器,并将 JSON 与 GLib 数据类型集成。

GDA

libgda 是一个库,它提供对多个基于 SQL 的关系数据库的访问,包括 SQLite、MySQL、Postgres、MSAccess 等。数据库可以是本地的或远程托管的。libgda 包含许多工具,包括 SQL 控制台、数据源管理工具和数据库浏览器。

GOM

GOM 是 SQLite 的 数据映射器。它支持异步获取和多对多表,并有助于构建搜索查询和数据库迁移。

TinySPARQL

TinySPARQL 允许您的应用程序使用 RDF 存储、查询和发布结构化数据。它基于 SQLite,并具有 SPARQL 转换层,该层添加了许多其他功能。

网络

GNOME 库提供对各种网络功能和特征的访问。

GSocket

GIO 包含高级网络功能,例如监视系统的网络状态、创建网络连接、实现网络服务和接受客户端连接。

GIO 还提供了一套全面的低级网络 API,以抽象套接字、地址和代理。

TLS 与 DNS 支持

GIO 提供对 TLS 连接的支持,包括客户端和服务器端。它还支持用于代理、名称和服务的解析器。

Avahi

Avahi 实现 零配置网络。它允许程序发现本地网络上的服务,例如打印机,而无需事先配置。它还允许应用程序设置可以通过本地网络访问的服务,而无需配置;例如,一个聊天程序可以在无需设置中央聊天服务器的情况下“找到”LAN 中的其他聊天用户。

Soup

Soup 是一个 HTTP 库,旨在用于图形应用程序。它使用异步操作来避免在进行网络请求时阻塞用户界面。

Soup 提供了使用 HTTP cookie、SSL 加密连接和基于 HTTP 的 XML-RPC 协议的功能。