Оригинальный автор (-ы) | Шон Амундсон |
---|---|
Разработчик (-ы) | Проект GNOME и др. |
Первоначальный выпуск | 1998 г.; 22 года назад (1998 г.) |
Стабильный выпуск | 2.64.4 (2 июля 2020 г.; 3 месяца назад (02.07.2020)) |
Репозиторий | |
Написано в | C |
Операционной системе | Linux, Unix-like, macOS, Windows |
Платформа | Кросс-платформенность |
Тип | Библиотека |
Лицензия | LGPLv2.1 |
Веб-сайт | wiki.gnome.org / Projects / GLib |
GLib - это набор из трех (ранее пяти) низкоуровневых системных библиотек, написанных на C и разработанных в основном GNOME. Код GLib был отделен от GTK, поэтому его можно использовать в программном обеспечении, отличном от GNOME, и с тех пор он разрабатывался параллельно.
GLib предоставляет расширенные структуры данных, такие как блоки памяти, дважды и одинарно связанные списки, хэш-таблицы, динамические строки и строковые утилиты, такие как лексический сканер, строковые блоки (группы строк), динамические массивы, сбалансированные бинарные деревья, N-арные деревья, кварки (двухмерные способ связи строки и уникального целочисленного идентификатора), списки данных с ключами, отношения и кортежи. Кэши обеспечивают управление памятью.
GLib реализует функции, которые предоставляют потоки, программирование потоков и связанные средства, такие как доступ к примитивным переменным, мьютексы, асинхронные очереди, безопасные пулы памяти, передача сообщений и ведение журнала, функции ловушки (регистрация обратного вызова) и таймеры. GLib также включает средства передачи сообщений, такие как преобразование порядка байтов и каналы ввода-вывода.
Некоторые другие особенности GLib включают:
Пакет GLib состоял из пяти библиотек, но все они были объединены в одну библиотеку, с тех пор названную просто GLib, и больше не поддерживаются как отдельные библиотеки. Исходными библиотеками были:
Of из них три продолжают находиться в разных подкаталогах исходного дерева, и поэтому их можно рассматривать как отдельные компоненты: GLib, GObject и GIO. Их можно рассматривать как программный стек: GObject полагается на GLib, а GIO предоставляет функциональные возможности более высокого уровня, которые используют оба.
GLib началась как часть проекта GTK +, который теперь называется GTK. Однако перед выпуском GTK + версии 2 разработчики проекта решили отделить от GTK + код, который не предназначен для графических пользовательских интерфейсов (GUI), создав таким образом GLib как отдельный программный пакет. GLib была выпущена как отдельная библиотека, поэтому другие разработчики, не использующие части GTK +, связанные с графическим интерфейсом, могли использовать не связанные с графическим интерфейсом части библиотеки без дополнительных затрат, зависящих от полной библиотеки графического интерфейса.
Поскольку GLib является кроссплатформенной библиотекой, приложения, использующие ее для взаимодействия с операционной системой, обычно переносятся в разные операционные системы без серьезных изменений.
Для текущего обзора см. Дорожная карта 2.24–2.36 и 2.38 – текущий, подробности см. В соответствующих примечаниях к выпуску в списке рассылки или в каталог tarballs.
Серия выпуска | Начальная. дата выпуска | Основные улучшения |
---|---|---|
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 | GVariant, GConverted |
2.26 | 27.09.2010 | , GDbus, GObject привязки свойств (GAtomic для реф-подсчета) |
2.30 | 2011-09-26 | Неуникальные приложения GA, используйте 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 | 23.09.2013 | приложения, запущенные с использованием D-Bus активации GSubprocess, Unicode 6.3 (выпущено в сентябре 2013 г.) |
2.40 | 2014 -03-24 | GNotification, API системных уведомлений |
2.42 | 2014-09-22 | |
2.43 | 2014-10-27 | |
2.44 | 2015-03- 23 | |
2.45 | 2015-04-30 | |
2.46 | 2015-0 9-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 |
Другие наборы инструментов для виджетов предоставляют низкоуровневые функции и реализации структур данных, в том числе: