Apache Portable Runtime (Apr)
The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations.
The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
The Apache Portable Runtime (APR) is a supporting library for the Apache web server. It provides a set of APIs that map to the underlying operating system (OS). Where the OS does not support a particular function, APR will provide an emulation. Thus programmers can use the APR to make a program truly portable across platforms.
The range of platform-independent functionality provided by APR includes:
• Memory allocation and memory pool functionality
• Atomic operations
• Dynamic library handling
• File I/O
• Command-argument parsing
• Locking
• Hash tables and arrays
• Mmap functionality
• Network sockets and protocols
• Thread, process and mutex functionality
• Shared memory functionality
• Time routines
• User and group ID services