What is the Apache Portable Runtime Library (APR)?
trunkThe Apache Portable Runtime Library (APR) provides a consistent, predictable C interface to platform-specific implementations. It allows developers to write code that works across various operating systems without handling platform-specific edge cases or deficiencies.
Supported Platforms:
- UNIX variants
- Windows
- Mac OS X
- OS/2
Core Subsystems (APR 1.3+):
- Atomic operations
- Dynamic Shared Object loading
- File I/O
- Locks (mutexes, condition variables, etc.)
- Memory management (high performance allocators)
- Memory-mapped files
- Multicast Sockets
- Network I/O
- Shared memory
- Thread and Process management
- Various data structures (tables, hashes, priority queues, etc.)
Utility Services (APR 2.0+):
APR 2.0 integrates several utilities that were previously in apr-util, including:
- Hashing and UUID services
- SQL DBD and flat-database DBM client interfaces
- Typesafe function Hooks abstraction
- MemCache interface
- Date parsing, URI parsing, and XML parsing (expat based)
- Thread Pools, Queues, and Resource Lists