Apache Portable Runtime
Appearance
The Apache Portable Runtime (APR) is a supporting library for the Apache web server. It provides a set of API's that map to the underlying operating system. Where the OS doesn't support a particular function, APR will provide a replacement. Thus, the APR can be used to make a program truly portable across platforms.
APR was originally a part of Apache, but has now been spun off into a separate project of the Apache Software Foundation, and is used by other applications to achieve platform independence.
The range of platform-independent functionality provided by APR includes:
- Memory allocation and memory pool functionality
- Atomicity 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
Similar projects
- Glib provides similar functionality, but is much more extensive, supporting many more data structures and OS-independent functions.
- NSPR is a cross-platform abstraction library used by the Mozilla project. In addition to the usual basic services, it also provides GUI functionality.
- Adaptive Communication Environment (ACE) is an object-oriented library similar in functionality to APR. It is widely deployed in commercial products.
- WxWidgets is an object-oriented cross-platform GUI library that also provides abstraction classes for database communication, IPC and networking functionality.
External links
- http://apr.apache.org/
- http://apr.apache.org/docs/apr/ APR programming documentation
- http://apache.org/ The Apache Software Foundation website