GLib
Эта статья нуждается в дополнительных цитатах для проверки . ( июль 2019 г. ) |
Оригинальный автор(ы) | Шон Амундсон |
---|---|
Разработчик(и) | Проект GNOME и др. |
Первоначальный выпуск | 1998 год |
Стабильная версия | 2.81.0 [1] ![]() |
Репозиторий | |
Написано в | С |
Операционная система | Linux , Unix-подобные , macOS , Windows |
Платформа | Кросс-платформенный |
Тип | Библиотека |
Лицензия | LGPLv2.1 |
Веб-сайт | www |

GLib — это пакет из трех (ранее пяти) системных библиотек низкого уровня , написанных на C и разработанных в основном GNOME . Код GLib был отделен от GTK , поэтому его можно использовать в других программах, кроме GNOME, и с тех пор он разрабатывался параллельно.
Название «GLib» происходит от начала проекта как служебной библиотеки GTK C.
Функции
[ редактировать ]GLib предоставляет расширенные структуры данных, такие как фрагменты памяти, двусвязные и односвязные списки , хеш-таблицы , динамические строки и строковые утилиты, такие как лексический сканер, фрагменты строк (группы строк), динамические массивы , сбалансированные двоичные деревья , N-арные деревья , кварки (двусторонняя ассоциация строки и уникального целочисленного идентификатора), списки данных с ключами, отношения и кортежи . Кэши обеспечивают управление памятью.
GLib реализует функции, которые обеспечивают потоки , программирование потоков и связанные с ними возможности, такие как примитивный доступ к переменным, мьютексы , асинхронные очереди , защищенные пулы памяти , сообщений передачу и регистрацию , функции перехвата (регистрация обратного вызова) и таймеры . GLib также включает средства передачи сообщений, такие как преобразование порядка байтов и каналы ввода-вывода.
Некоторые другие особенности GLib включают в себя:
Компоненты
[ редактировать ]Пакет GLib состоял из пяти библиотек, но все они были объединены в одну библиотеку, которая с тех пор называлась просто GLib и больше не поддерживается как отдельные библиотеки. Оригинальные библиотеки были:
Из них три продолжают находиться в отдельных подкаталогах дерева исходного кода и поэтому могут рассматриваться как отдельные компоненты: GLib, GObject и GIO. Их можно рассматривать как программный стек: GObject опирается на GLib, а GIO обеспечивает функциональность более высокого уровня, использующую оба.
История
[ редактировать ]GLib зародился как часть проекта GTK+ , который теперь называется GTK. Однако перед выпуском GTK+ версии 2 разработчики проекта решили отделить от GTK+ код, не предназначенный для графических пользовательских интерфейсов (GUI), создав таким образом GLib как отдельный пакет программного обеспечения. GLib была выпущена как отдельная библиотека, поэтому другие разработчики, не использующие части GTK+, связанные с графическим интерфейсом, могли использовать части библиотеки, не связанные с графическим интерфейсом, без накладных расходов, связанных с зависимостью от полной библиотеки графического интерфейса.
Поскольку GLib является кроссплатформенной библиотекой, приложения, использующие ее для взаимодействия с операционной системой, обычно переносятся между различными операционными системами без серьезных изменений. [2]
Релизы
[ редактировать ]Glib находится в стадии активной разработки. Текущий обзор см. https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWS . В таблице ниже приведены основные примечания к обновлениям с 1998 по 2022 год.
Серия релизов | Исходный Дата выпуска | Основные улучшения |
---|---|---|
GLib 1.x | ||
1.1 | 1998-09-12 | |
1.2 | 1999-02-27 | |
1.3 | 2001-09-25 | |
GLib 2.x | ||
2.0 | 2002-03-08 | |
2.24 | 2010-03-26 | GВариант, GКонвертированный |
2.26 | 2010-09-27 | GSettings , GDbus, привязки свойств GObject (GAtomic для подсчета ссылок) |
2.30 | 2011-09-26 | Неуникальные GApplications, используйте eventfd() для пробуждения основного цикла, оптимизации набора GHashTable, масштабируемости данных GObject |
2.32 | 2012-03-24 | Планы на GLib 2.32 |
2.34 | 2012-09-23 | Что нового для разработчиков в GLib 2.34 |
2.36 | 2013-03-25 | |
2.38 | 2013-09-23 | приложения, запускаемые с использованием D-Bus активации [3] GSubprocess, Unicode 6.3 (выпущен в сентябре 2013 г.) |
2.40 | 2014-03-24 | GNotification, API системных уведомлений [4] |
2.42 | 2014-09-22 | |
2.43 | 2014-10-27 | |
2.44 | 2015-03-23 | |
2.45 | 2015-04-30 | |
2.46 | 2015-09-21 | |
2.47 | 2015-10-26 | |
2.48 | 2016-03-22 | |
2.50 | 2016-09-19 | |
2.52 | 2017-03-19 | |
2.53 | 2017-04-25 | |
2.54 | 2018-01-08 | |
2.55 | 2018-02-06 | |
2.56 | 2018-03-12 | |
2.57 | 2018-05-05 | |
2.58 | 2018-08-30 | |
2.59 | 2018-12-23 | |
2.60 | 2019-03-04 | |
2.61 | 2019-04-15 | |
2.62 | 2019-09-05 | |
2.63 | 2019-10-04 | |
2.64 | 2020-02-27 | |
2.65 | 2020-06-18 | |
2.66 | 2020-09-10 | |
2.67 | 2020-10-23 | |
2.68 | 2021-03-18 | |
2.69 | 2021-07-06 | |
2.70 | 2021-09-17 | |
2.71 | 2021-12-16 | |
2.72 | 2022-03-17 |
Похожие проекты
[ редактировать ]Другие библиотеки предоставляют низкоуровневые функции и реализации структур данных, в том числе:
- Библиотека классов Microsoft Foundation (MFC) — объектно-ориентированная C++ библиотека-оболочка на основе C для Windows API , которая также включает в себя некоторые структуры данных и другие удобные функции.
- Стандартная библиотека шаблонов (STL) — библиотека C++ для структур данных и алгоритмов.
- Boost — предоставляет некоторые функции для C++, такие как примитивы потоков, аналогичные тому, что GLib делает для C.
- QtCore – основной API Qt Framework.
- wxBase – функции библиотеки не относящиеся к графическому интерфейсу. wxWidgets,
- Apache Portable Runtime и Apple Core Foundation имеют большое функциональное совпадение с GLib и предоставляют множество аналогичных реализаций потоков, сетей и структур данных, переносимых под операционную систему, на C.
Ссылки
[ редактировать ]- ^ «2.81.0 · GNOME/GLib · GitLab» . Проверено 28 июня 2024 г.
- ^ Краузе, Эндрю (2007). Основы разработки GTK+ . Голос эксперта в открытом исходном коде. Апресс . п. 5 . ISBN 978-1-59059-793-4 . Проверено 3 апреля 2013 г.
[GLib] предоставляет кросс-платформенный интерфейс, который позволяет запускать ваш код в любой из поддерживаемых операционных систем практически без переписывания кода !
- ^ «Настройка приложения для запуска D-Bus» .
- ^ «Уведомление» .