Apache Portable Runtime

Supporting library for the Apache web server
title: "Apache Portable Runtime" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["apache-software-foundation-projects", "c-(programming-language)-libraries", "free-computer-libraries", "free-software-programmed-in-c", "application-programming-interfaces", "software-using-the-apache-license"] description: "Supporting library for the Apache web server" topic_path: "general/apache-software-foundation-projects" source: "https://en.wikipedia.org/wiki/Apache_Portable_Runtime" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary Supporting library for the Apache web server ::
::data[format=table title="Infobox software"]
| Field | Value |
|---|---|
| name | Apache Portable Runtime |
| logo | [[File:Apache_Portable_Runtime_Logo.svg |
| developer | Apache Software Foundation |
| latest release version | 1.7.4 |
| latest release date | |
| operating system | Cross-platform |
| programming language | C |
| genre | Development library |
| license | Apache License 2.0 |
| website | |
| :: |
| name = Apache Portable Runtime | logo = [[File:Apache_Portable_Runtime_Logo.svg|250px|APR Logo]] | developer = Apache Software Foundation | latest release version = 1.7.4 | latest release date = | operating system = Cross-platform | programming language = C | genre = Development library | license = Apache License 2.0 | website = 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
References
- "Apache Portable Runtime APR 1.7.4 Released".
- "Apache Portable Runtime modules". Apache.
- "ACE and TAO Success Stories".
- [http://www.internetnews.com/dev-news/article.php/3568241/Stable+Apache+Release+Hits.htm Stable Apache Release Hits], Sean Michael Kerner, 2 December 2005, "Apache Portable Runtime (APR) 1.0 API, which provides libraries that interface between the underlying operating system and the server."
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::