GLib

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

GLib é uma biblioteca multiplataforma de software que inicialmente fazia parte do projeto GTK+. Antes da liberação da versão 2 do GTK+, os desenvolvedores resolveram separar a parte não relacionada com a interface gráfica e criar um produto separado. A GLib é uma biblioteca de uso geral que disponibiliza vários tipos de dados, macros, funções para conversão de tipos, utilitários para manipulação de strings e de arquivos, um laço de eventos, além de outras implementações.

Como a GLib é uma biblioteca multiplataforma, as aplicações que a utilizam como interface para o sistema operacional podem ser utilizadas em diferentes sistemas sem maiores alterações.[1]

Características[editar | editar código-fonte]

A GLib possui estruturas de dados avançadas, como chunks de memória, listas duplamente ou simplesmente ligadas, tabelas hash, funções para manipulação de strings, análise léxica de textos, arrays dinâmicos, árvores binárias balanceadas, quarks (uma associação de duas vias entre uma string e um identificador numérico único) e tuplas (tabelas de dados que podem ser indexados por qualquer combinação de campos). O gerenciamento de memória é realizado através de "fatias" de memória (memory slices) e permite a alocação eficiente de memória[2] através da implementação do esquema slab allocation.[3]

A GLib também fornece funções que facilitam a criação de programas com múltiplas threads: mutexes, primitivas para acesso a variáveis globais, filas assíncronas, troca de mensagens, log, hooking e timers.

Também estão incluídas na GLib as seguintes funcionalidades:

  • macros padronizadas;
  • carregamento dinâmico de módulos;
  • um sistema de tipos, GType;
  • um sistema de objetos, GObject

Projetos similares[editar | editar código-fonte]

Para algumas aplicações, a combinação da linguagem C com a biblioteca GLib é uma alternativa para o uso da linguagem C++ com a biblioteca STL. (Ver GObject para uma comparação detalhada).

A Apache Portable Runtime possui uma grande sobreposição em relação a GLib e fornece muitas implementações similares para programação com threads, rede e estruturas de dados.

Outros toolkits também fornecem pacotes com funções e estruturas de baixo nível. Por exemplo, no wxWidgets as funções não relacionadas a gui estão separadas na biblioteca wxBase, e no Qt estas funções estão incluídas no módulo QtCore.

Componentes[editar | editar código-fonte]

O pacote GLib é composto de 5 bibliotecas:

Referências[editar | editar código-fonte]

  1. Krause, Andrew. Foundations of GTK+ Development. [S.l.]: Apress, 2007. p. 5. ISBN 1590597931
  2. Krause, Andrew. Foundations of GTK+ Development. [S.l.]: Apress, 2007. p. 166. ISBN 1590597931
  3. Memory Slices (HTML). Página visitada em 16 de outubro de 2011.

Ligações externas[editar | editar código-fonte]