Apache Portable Runtime
A Apache Portable Runtime (APR) é uma biblioteca de suporte para o servidor web Apache. Ela possui um conjunto de APIs que mapeiam funções do sistema operacional (SO). Quando um SO não suporta determinada função, a APR define uma substituta. Além disso, a APR pode fazer com que um programa seja verdadeiramente portável entre várias plataformas.
Originalmente, a APR era parte do servidor Apache, mas foi separada em um outro projeto pela Apache Software Foundation. Atualmente utilizada por outras aplicações que necessitam de independência de plataforma.
Atualmente o servidor Tomcat também pode usar a APR, fazendo com que parte de suas funcionalidades sejam executadas em código nativo e otimizado.
As funcionalidades independentes de plataforma disponibilizadas pela APR, são:
- Alocação de memória e funcionalidade de pool de memória;
- Suporte a operações atômicas;
- Manipulação de bibliotecas dinâmicas;
- E/S de arquivos;
- Manipulação (parsing) de argumentos de comandos;
- Funções de locking;
- Tabelas hash e vetores;
- Funcionalidade de Mmap;
- Sockets de rede e protocolos;
- Funcionalidade de threads, processos e mutex;
- Memória compartilhada;
- Rotinas de tempo;
- Serviços de usuários e grupos.
Projeto similares[editar]
- Glib é uma biblioteca que disponibiliza funcionalidade similar, mas é muito mais extensível, suportando muito mais estruturas de dados e funções independentes de SO.
- NSPR é uma biblioteca independente de plataforma utilizada no projeto Mozilla. Em adição as funcionalidades básicas, ela disponibiliza funcionalidade para GUI.
- Adaptive Communication Environment (ACE) é uma biblioteca orientada a objetos com funcionalidade similar a APR. Ela é utilizada largamente em produtos comerciais.
- WxWidgets é uma biblioteca GUI, independente de plataforma e orientada a objetos. Ela disponibiliza classes para abstração do acesso a base de dados, IPC e funcionalidade de rede.