The Full Wiki

Apache Portable Runtime: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


From Wikipedia, the free encyclopedia

Apache Portable Runtime
Developer(s) Apache Software Foundation
Stable release 1.3.8
Written in C/C++
Operating system Cross-platform
Development status Active
Type Development Library
License Apache License 2.0

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. 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 HTTP Server, 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:



A very simple tutorial that explains how to compile and install Apache Portable Runtime (apr) on Linux can be found here.

Similar projects

  • Glib provides similar functionality. It supports many more data structures and OS-independent functions, but fewer IPC-related functions (local and global locking, dynamic loading, or shared memory management are not provided).
  • NSPR is a cross-platform abstraction library used by the Mozilla project. It is used by another subproject of Mozilla 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[1].
  • commonc++ is a cross-platform C++ class library for systems programming, with much of the same functionality as APR.
  • WxWidgets is an object-oriented cross-platform GUI library that also provides abstraction classes for database communication, IPC and networking functionality.
  • Qt is a cross-platform application development framework with similar features and can also be used for GUI development.

External links




Up to date as of January 23, 2010

From Wikibooks, the open-content textbooks collection

This book is a tutorial for the free open source Apache Portable Runtime.


  • Simple example
  • Programming model
  • Using memory pools
  • Error codes

APR Modules

  • IO
    • File IO
    • File info & stat
    • Network IO
    • Pipe IO
  • Threads & Processes
    • Thread
    • Process
  • Synchronization
    • File Lock
    • Process Lock
    • Thread Lock
    • Global Lock - a lock for both threads and processes
    • Thread Reader/Writer Lock
    • Thread Condition Variable
    • Atomic Operation
  • Data Objects
    • Array
    • Table
    • Ring - implemented as a macro
    • Hash Table
  • Miscellaneous
    • Poll
    • String
    • Time
    • User and Group ID
    • Dynamic Object Handling
    • Environment Manipulation
    • Commandline Argument Parsing
    • Memory Map
    • Shared Memory
    • Portability
    • Signal Handling
    • Misc Functions


Got something to say? Make a comment.
Your name
Your email address