GLib es un paquete de tres (anteriormente cinco) bibliotecas de sistema de bajo nivel escritas en C y desarrolladas principalmente por GNOME . El código de GLib se separó de GTK , por lo que puede ser utilizado por software que no sea GNOME y se ha desarrollado en paralelo desde entonces.
Autor (es) original (es) | Shawn Amundson |
---|---|
Desarrollador (es) | El Proyecto GNOME et al. |
Versión inicial | 1998 |
Lanzamiento estable | 2.68.2 [1] / 11 de mayo de 2021 |
Repositorio | |
Escrito en | C |
Sistema operativo | Linux , similar a Unix , macOS , Windows |
Plataforma | Multiplataforma |
Tipo | Biblioteca |
Licencia | LGPLv2.1 |
Sitio web | wiki |
Características
GLib proporciona estructuras de datos avanzadas, como fragmentos de memoria, listas enlazadas doble o individualmente , tablas hash , cadenas dinámicas y utilidades de cadenas, como un escáner léxico , fragmentos de cadenas (grupos de cadenas), matrices dinámicas , árboles binarios equilibrados , N-ary árboles , quarks (una asociación bidireccional de una cadena y un identificador entero único), listas de datos con clave, relaciones y tuplas . Los cachés proporcionan administración de memoria.
GLib implementa funciones que proporcionan subprocesos , programación de subprocesos y facilidades relacionadas tales como acceso a variables primitivas, mutex , colas asíncronas , grupos de memoria seguros , paso y registro de mensajes , funciones de enganche (registro de devolución de llamada) y temporizadores . GLib también incluye funciones de paso de mensajes, como conversión de orden de bytes y canales de E / S.
Algunas otras características de GLib incluyen:
Componentes
El paquete GLib constaba de cinco bibliotecas, pero todas se fusionaron en una biblioteca, desde entonces denominada simplemente GLib , y ya no se mantienen como bibliotecas independientes. Las bibliotecas originales fueron:
De estos, tres continúan residiendo en distintos subdirectorios del árbol de origen, por lo que se pueden considerar componentes discretos: GLib, GObject y GIO. Estos pueden considerarse como una pila de software: GObject se basa en GLib y GIO proporciona una funcionalidad de nivel superior que utiliza ambos.
Historia
GLib comenzó como parte del proyecto GTK + , ahora llamado GTK. Sin embargo, antes de lanzar GTK + versión 2, los desarrolladores del proyecto decidieron separar el código de GTK + que no era para interfaces gráficas de usuario (GUI), creando así GLib como un paquete de software separado. GLib se lanzó como una biblioteca separada para que otros desarrolladores, aquellos que no usan las partes relacionadas con la GUI de GTK +, puedan usar las partes de la biblioteca que no son GUI sin la sobrecarga de depender de la biblioteca GUI completa.
Dado que GLib es una biblioteca multiplataforma , las aplicaciones que la utilizan para interactuar con el sistema operativo suelen ser portátiles en diferentes sistemas operativos sin cambios importantes. [2]
Lanzamientos
Para obtener una descripción general actual, consulte la hoja de ruta 2.24–2.36 y 2.38 – actual ; para obtener más detalles, consulte las notas de la versión respectiva en la lista de correo o en el directorio tarballs.
Serie de lanzamiento | Fecha de lanzamiento inicial | Mejoras importantes |
---|---|---|
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 | Enlaces de propiedad GSettings , GDbus, GObject (GAtomic para refcounting) |
2.30 | 2011-09-26 | GApplications no exclusivas, use eventfd () para la activación del mainloop, optimización del conjunto de GHashTable, escalabilidad de datos de GObject |
2,32 | 2012-03-24 | Planes para GLib 2.32 |
2,34 | 2012-09-23 | Novedades para desarrolladores en GLib 2.34 |
2,36 | 2013-03-25 | |
2,38 | 2013-09-23 | aplicaciones lanzadas mediante la activación de D-Bus [3] GSubprocess, Unicode 6.3 (lanzado en septiembre de 2013) |
2,40 | 2014-03-24 | GNotification, API de notificación del sistema [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 |
Proyectos similares
Otras bibliotecas proporcionan funciones de bajo nivel e implementaciones de estructuras de datos, que incluyen:
- Biblioteca de plantillas estándar (STL): biblioteca C ++ para estructuras de datos y algoritmos
- Boost : proporciona algunas funciones para C ++, como primitivas de subprocesamiento, similar a lo que hace GLib para C
- QtCore - API central de Qt Framework
- wxBase: funciones no GUI de la biblioteca wxWidgets
- El Apache portátil Tiempo de ejecución y Apple Fundación Core tienen una superposición funcional grande con GLib, y proporcionan muchas implementaciones de la estructura de datos de roscado OS-portátil, red y similares en C.
Referencias
- ^ "simplista 2.68.2" .
- ^ Krause, Andrew (2007). Fundamentos del desarrollo GTK + . La voz del experto en código abierto. Presione . pag. 5 . ISBN 978-1-59059-793-4. Consultado el 3 de abril de 2013 .
[GLib] proporciona una interfaz multiplataforma que permite que su código se ejecute en cualquiera de sus sistemas operativos compatibles con poca o ninguna reescritura de código .
- ^ "Configuración de una aplicación para el lanzamiento de D-Bus" .
- ^ "GNotificación" .
enlaces externos
- Página web oficial
- Documentación de la API GLib
- Árbol de origen de GLib Git