Эта статья требует дополнительных ссылок для проверки . ( июль 2019 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
Оригинальный автор (ы) | Шон Амундсон |
---|---|
Разработчики) | Проект GNOME и др. |
изначальный выпуск | 1998 |
Стабильный выпуск | 2,66,7 (11 февраля 2021 г . [±] [1] | )
Репозиторий | |
Написано в | C |
Операционная система | Linux , Unix-подобный , macOS , Windows |
Платформа | Кроссплатформенность |
Тип | Библиотека |
Лицензия | LGPLv2.1 |
Интернет сайт | wiki |
GLib - это набор из трех (ранее пяти) низкоуровневых системных библиотек, написанных на C и разработанных в основном GNOME . Код GLib был отделен от GTK , поэтому его можно использовать в программном обеспечении, отличном от GNOME, и с тех пор он разрабатывался параллельно.
Особенности [ править ]
GLib предоставляет расширенные структуры данных, такие как блоки памяти, двусвязные и односвязные списки , хеш-таблицы , динамические строки и строковые утилиты, такие как лексический сканер, строковые блоки (группы строк), динамические массивы , сбалансированные двоичные деревья , N-арное деревья , кварки (двусторонняя ассоциация строки и уникального целочисленного идентификатора), списки данных с ключами, отношения и кортежи . Кеши обеспечивают управление памятью.
GLib реализует функции, которые обеспечивают потоки , программирование потоков и связанные с ними средства, такие как доступ к примитивным переменным, мьютексы , асинхронные очереди , безопасные пулы памяти , передача сообщений и ведение журнала, функции перехвата (регистрация обратного вызова) и таймеры . GLib также включает средства передачи сообщений, такие как преобразование порядка байтов и каналы ввода-вывода.
Некоторые другие особенности GLib включают:
- стандартные макросы
- предупреждения и утверждения
- динамическая загрузка модулей
Компоненты [ править ]
Пакет GLib состоял из пяти библиотек, но все они были объединены в одну библиотеку, с тех пор называемую просто GLib , и больше не поддерживаются как отдельные библиотеки. Исходные библиотеки были:
- GObject , объектная система, включающая систему типов GType
- GLib
- GModule
- GThread
- GIO
Из них три продолжают находиться в разных подкаталогах исходного дерева, и поэтому их можно рассматривать как отдельные компоненты: GLib, GObject и GIO. Их можно рассматривать как программный стек: GObject полагается на GLib, а GIO предоставляет функциональные возможности более высокого уровня, которые используют оба.
История [ править ]
GLib начался как часть проекта GTK + , который теперь называется GTK. Однако перед выпуском GTK + версии 2 разработчики проекта решили отделить от GTK + код, не предназначенный для графических пользовательских интерфейсов (GUI), создав таким образом GLib как отдельный программный пакет. GLib была выпущена как отдельная библиотека, поэтому другие разработчики, не использующие части GTK +, связанные с графическим интерфейсом, могли использовать не связанные с графическим интерфейсом части библиотеки без дополнительных затрат, зависящих от полной библиотеки графического интерфейса.
Поскольку GLib является кроссплатформенной библиотекой, приложения, использующие ее для взаимодействия с операционной системой , обычно переносятся между разными операционными системами без серьезных изменений. [2]
Релизы [ править ]
Текущий обзор см. В Roadmap 2.24–2.36 и 2.38 – current , подробности см. В соответствующих примечаниях к выпуску в списке рассылки или в каталоге 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 | 2010-09-27 | Привязки свойств GSettings , 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 | 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 |
Похожие проекты [ править ]
Другие библиотеки предоставляют низкоуровневые функции и реализации структур данных, включая:
- Стандартная библиотека шаблонов (STL) - библиотека C ++ для структур данных и алгоритмов
- Boost - предоставляет некоторые функции для C ++, такие как примитивы потоковой передачи, аналогично тому, что GLib делает для C
- QtCore - основной API Qt Framework
- wxBase - функции библиотеки wxWidgets без графического интерфейса
- Apache Portable Runtime и Apple , основной фонд имеют большое функциональное перекрытие с БОЙКИМ, и обеспечивают много подобных ОСА портативным поточные, сетей и структуры данных внедрений в C.
Ссылки [ править ]
- ^ Withnall, Филипп (11 февраля 2021). "glib 2.66.7" . GNOME ftp-release (Список рассылки) . Проверено 12 февраля 2021 года .
- ^ Краузе, Эндрю (2007). Основы GTK + Development . Голос эксперта в открытом доступе. Апресс . п. 5 . ISBN 978-1-59059-793-4. Проверено 3 апреля 2013 года .
[GLib] предоставляет кроссплатформенный интерфейс, который позволяет запускать ваш код в любой из поддерживаемых операционных систем практически без переписывания кода !
- ^ «Настройка приложения для запуска D-Bus» .
- ^ "GNotification" .
Внешние ссылки [ править ]
- Официальный веб-сайт
- Документация по API GLib
- Исходное дерево GLib Git