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).

  • 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