angus apache apache-portable-library apache_portable_library apache_portable_runtime apr c c++ clib cpp library opensource operatingsystem portability programming readcode research resources
Apache Portable Runtime
From Wikipedia, the free encyclopedia
Developed by | Apache Software Foundation |
---|---|
Latest release | 1.3.3 / 2008-08-16 |
Written in | C/C++ |
Operating system | Cross-platform |
Type | Development Library |
License | Apache License 2.0 |
Website | http://apr.apache.org |
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, 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:
- 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
- Time routines
- User and group ID services
Contents |
[edit] Installation
A very simple tutorial that explains how to compile and install Apache Portable Runtime (apr) on Linux can be found here.
[edit] 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.
[edit] External links
- The APR website
- The current APR programming documentation
- The Apache Software Foundation website
- APR programming tutorial
- APR wikibooks tutorial (inactive)
[edit] References
- ^ "ACE and TAO Success Stories". http://www.cs.wustl.edu/~schmidt/ACE-users.html. Retrieved on 2008-07-31.
|