Apache Portable Runtime
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).[2] 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.
![]()  | |
| Developer(s) | Apache Software Foundation | 
|---|---|
| Stable release | 1.7.4
   / April 16, 2023[1]  | 
| Repository | |
| Written in | C | 
| Operating system | Cross-platform | 
| Type | Development library | 
| License | Apache License 2.0 | 
| Website | apr | 
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: [3]
- 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.[4]
 - 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
    
- "Apache Portable Runtime APR 1.7.4 Released". Retrieved 7 October 2023.
 - 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."
 - "Apache Portable Runtime modules". Apache. Retrieved 23 September 2023.
 - "ACE and TAO Success Stories". Archived from the original on 29 August 2008. Retrieved 2008-07-31.
 
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.
