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.

APR originally formed a part of Apache HTTP Server, but the Apache Software Foundation spun it off into a separate project. Other applications can use it to achieve platform independence.

Functionality 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 Skip list functionality Time routines User and group ID services

Similar projects GLib – provides similar functionality. It supports many more data structures and OS-independent functions, but fewer IPC-related functions. (GLib lacks local and global locking and shared-memory management.) Netscape Portable Runtime (NSPR) is a cross-platform abstraction library used by the Mozilla project. It is used by another subproject of Mozilla application framework (XPFE) to provide cross-platform graphical user interface (GUI) functionality. Adaptive Communication Environment (ACE) is an object-oriented library written in C++ similar in functionality to APR. It is widely deployed in commercial products. commonc++ is a cross-platform C++ class library for systems programming, with much of the same functionality as APR. POCO is a modern C++ framework similar in concept but more extensive than APR. wxWidgets is an object-oriented cross-platform GUI library that also provides abstraction classes for database communication, IPC and networking functionality. KDE Frameworks – used by KDE SC

References

External links