CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Fri, 08 Aug 2025 05:38:07 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20110405020132
location: https://web.archive.org/web/20110405020132/https://github.com/apache/apr
server-timing: captures_list;dur=0.678887, exclusion.robots;dur=0.019680, exclusion.robots.policy;dur=0.007723, esindex;dur=0.009395, cdx.remote;dur=133.483396, LoadShardBlock;dur=478.834237, PetaboxLoader3.datanode;dur=210.789639, PetaboxLoader3.resolve;dur=155.369368
x-app-server: wwwb-app239
x-ts: 302
x-tr: 902
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
set-cookie: wb-p-SERVER=wwwb-app239; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 302
server: nginx
date: Fri, 08 Aug 2025 05:38:08 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20180611032128
location: https://web.archive.org/web/20180611032128/https://github.com/apache/apr
server-timing: captures_list;dur=0.588584, exclusion.robots;dur=0.019598, exclusion.robots.policy;dur=0.007480, esindex;dur=0.009874, cdx.remote;dur=9.946903, LoadShardBlock;dur=154.803322, PetaboxLoader3.datanode;dur=463.418215, PetaboxLoader3.resolve;dur=813.728066, load_resource;dur=1236.537022
x-app-server: wwwb-app239
x-ts: 302
x-tr: 1442
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Fri, 08 Aug 2025 05:38:09 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: GitHub.com
x-archive-orig-date: Mon, 11 Jun 2018 03:21:28 GMT
x-archive-orig-transfer-encoding: chunked
x-archive-orig-status: 200 OK
x-archive-orig-cache-control: no-cache
x-archive-orig-vary: X-PJAX
x-archive-orig-set-cookie: logged_in=no; domain=.github.com; path=/; expires=Fri, 11 Jun 2038 03:21:28 -0000; secure; HttpOnly
x-archive-orig-set-cookie: _gh_sess=ZEZIelVDZUMydzZ2YTR2OFdMUDY1VnJvTFNYYWZ2UjJMUkI3VldLNlJCSXNZMkhreHlpdFU5WkE1UW9jVFprNEtzRWtWVjF4MVdQUjBJbkRHQmFwUnA2dDdwMzhLd21FbTBzSEVmYVNlNHRQNmRSRU9vMC80enlHSEhOWlQxcWlJek5Dd2huRE95V004dEJqd3N4RWY5SXFtaVRqZ2ExS08vWFdQa2dvSUp5a2pVQTBSa3hXWkt4ZlZ1K3hrMVlxS0NjVitMaVVEZUpaRmdkVmdPUjZsTmVudzg1cjdtSmlMREltN3B6VThCVTJZOFQ5aERQR2JLL09EQlVUanZ3Rm1KdnhCU0EzaGloMW9ZbGJrQXR0MklsZFVoVUxCejczV2RGTDJnUm4vMTRYVzhXWkgyK2xFK0pQeEZpMnR6djZyQlpuNzhySkRwTVFuVTVOcE0yck1heVltVUFWNytMRFh4TktYZzNZeHduRjRhWFdIcUVpVjY2V3ZRbm1kL24xdVJpUGpaNnJ3L3AxeWJORFBVNjBudz09LS1HQXVmTHFxdXMxRXVJR2lDTEhNZ1RRPT0%3D--a8539c58763c2d4b65d2ecf57d5333cbc7ad8863; path=/; secure; HttpOnly
x-archive-orig-x-request-id: 7dc68269-f60b-4e21-bc5c-be166b40e3c6
x-archive-orig-x-runtime: 0.324328
x-archive-orig-strict-transport-security: max-age=31536000; includeSubdomains; preload
x-archive-orig-x-frame-options: deny
x-archive-orig-x-content-type-options: nosniff
x-archive-orig-x-xss-protection: 1; mode=block
x-archive-orig-expect-ct: max-age=2592000, report-uri="https://api.github.com/_private/browser/errors"
x-archive-orig-content-security-policy: default-src 'none'; base-uri 'self'; block-all-mixed-content; connect-src 'self' uploads.github.com status.github.com collector.githubapp.com api.github.com www.google-analytics.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com wss://live.github.com; font-src assets-cdn.github.com; form-action 'self' github.com gist.github.com; frame-ancestors 'none'; frame-src render.githubusercontent.com; img-src 'self' data: assets-cdn.github.com identicons.github.com collector.githubapp.com github-cloud.s3.amazonaws.com *.githubusercontent.com; manifest-src 'self'; media-src 'none'; script-src assets-cdn.github.com; style-src 'unsafe-inline' assets-cdn.github.com
x-archive-orig-x-runtime-rack: 0.333809
x-archive-orig-x-github-request-id: B05E:57EE:510EC98:99773D9:5B1DEAB8
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: windows-1250
memento-datetime: Mon, 11 Jun 2018 03:21:28 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Tue, 05 Apr 2011 02:01:32 GMT", ; rel="prev memento"; datetime="Mon, 13 Jan 2014 16:18:38 GMT", ; rel="memento"; datetime="Mon, 11 Jun 2018 03:21:28 GMT", ; rel="next memento"; datetime="Thu, 12 Nov 2020 01:22:40 GMT", ; rel="last memento"; datetime="Thu, 12 Jun 2025 15:56:14 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: archiveteam_github_20180703213808/archiveteam_github_20180703213808.megawarc.warc.gz
server-timing: captures_list;dur=0.585713, exclusion.robots;dur=0.017577, exclusion.robots.policy;dur=0.007008, esindex;dur=0.010593, cdx.remote;dur=5.186222, LoadShardBlock;dur=198.389865, PetaboxLoader3.datanode;dur=209.990016, load_resource;dur=89.438527, PetaboxLoader3.resolve;dur=68.728801
x-app-server: wwwb-app239
x-ts: 200
x-tr: 477
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
GitHub - apache/apr: Mirror of Apache Portable Runtime
Fetching latest commit…
Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Mirror of Apache Portable Runtime
C
M4
Python
Perl
Shell
C++
Other
Switch branches/tags
0.9.x
1.0.x
1.1.x
1.2.x
1.3.x
1.4.x
1.5.x
1.6.x
1.7.x
APR
APR_0_9_BRANCH
evenset
gstein-pocore
pollcb-dev
trunk
unlabeled-1.1.1
Nothing to show
apache-1_3-merge-2-pre
apache-1_3-merge-2-post
STRIKER_2_0_51_RC2
STRIKER_2_0_51_RC1
PRE_APR_CHANGES
POST_APR_SPLIT
JCW_0_9_5_PRE1
APR_1_0_0
APR_1_0_0_RC6
APR_1_0_0_RC5
APR_1_0_0_RC4
APR_1_0_0_RC3
APR_1_0
APR_1_0_RC2
APR_1_0_RC1
APR_0_9_4
APR_0_9_3
APR_0_9_2
APR_0_9_1
APR_0_9_0
APACHE_2_0_2001_02_09
APACHE_2_0_52
APACHE_2_0_52_WROWE_RC1
APACHE_2_0_51
APACHE_2_0_50
APACHE_2_0_49
APACHE_2_0_48
APACHE_2_0_47
APACHE_2_0_46
APACHE_2_0_45
APACHE_2_0_44
APACHE_2_0_43
APACHE_2_0_42
APACHE_2_0_41
APACHE_2_0_40
APACHE_2_0_39
APACHE_2_0_38
APACHE_2_0_37
APACHE_2_0_36
APACHE_2_0_35
APACHE_2_0_34
APACHE_2_0_33
APACHE_2_0_32
APACHE_2_0_31
APACHE_2_0_30
APACHE_2_0_29
APACHE_2_0_28
APACHE_2_0_27
APACHE_2_0_26
APACHE_2_0_25
APACHE_2_0_24
APACHE_2_0_23
APACHE_2_0_22
APACHE_2_0_21
APACHE_2_0_20
APACHE_2_0_19
APACHE_2_0_18
APACHE_2_0_17
APACHE_2_0_16
APACHE_2_0_15
APACHE_2_0_14
APACHE_2_0_13
APACHE_2_0_12
APACHE_2_0_11
APACHE_2_0_10
APACHE_2_0_BETA_CANDIDATE_1
APACHE_2_0_ALPHA_9
APACHE_2_0_ALPHA_8
APACHE_2_0_ALPHA_7
APACHE_2_0_ALPHA_6
APACHE_2_0_ALPHA_5
APACHE_2_0_ALPHA_4
APACHE_2_0_ALPHA_3
APACHE_2_0_ALPHA_2
APACHE_2_0_ALPHA
APACHE_1_3_9
1.6.3
1.6.2
1.6.1
1.6.0
1.5.2
1.5.1
1.5.0
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.4.0-dev-r833920
1.4.x-r884301
1.4.x-r833920
1.3.12
1.3.11
1.3.10
1.3.9
1.3.8
Nothing to show
Clone or download
Launching GitHub Desktop...
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop...
If nothing happens, download GitHub Desktop and try again.
Launching Xcode...
If nothing happens, download Xcode and try again.
Launching Visual Studio...
If nothing happens, download the GitHub extension for Visual Studio and try again.

Cannot retrieve the latest commit at this time.
Permalink
README
Apache Portable Runtime Library (APR) ===================================== The Apache Portable Runtime Library provides a predictable and consistent interface to underlying platform-specific implementations, with an API to which software developers may code and be assured of predictable if not identical behavior regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features. APR and its companion libraries are implemented entirely in C and provide a common programming interface across a wide variety of operating system platforms without sacrificing performance. Currently supported platforms include: UNIX variants Windows Netware Mac OS X OS/2 To give a brief overview, the primary core subsystems of APR 1.3 include the following: Atomic operations Dynamic Shared Object loading File I/O Locks (mutexes, condition variables, etc) Memory management (high performance allocators) Memory-mapped files Multicast Sockets Network I/O Shared memory Thread and Process management Various data structures (tables, hashes, priority queues, etc) APR 2.0 also provides a number of utility functions and library compatibility interfaces. These were formerly part of APR-util, a seperate utility library in version 1 releases. These include; Hashing and UUID services Multiple SQL DBD client interfaces Multiple flat-database DBM client interfaces Typesafe function Hooks abstraction MemCache interface Date parsing rourtines Resource Lists Thread Pools Queues Relocatable Memory Management functions String filename-style pattern matching URI Parsing Charset translation (iconv based) XML parsing (expat based) For a more complete list, please refer to the following URLs: https://apr.apache.org/docs/apr/modules.html Users of APR 0.9 should be aware that migrating to the APR 1.x programming interfaces may require some adjustments; APR 1.x is neither source nor binary compatible with earlier APR 0.9 releases. Users of APR 1.x can expect consistent interfaces and binary backwards compatibility throughout the entire APR 1.x release cycle, as defined in our versioning rules: https://apr.apache.org/versioning.html APR is already used extensively by the Apache HTTP Server version 2 and the Subversion revision control system, to name but a few. We list all known projects using APR at https://apr.apache.org/projects.html -- so please let us know if you find our libraries useful in your own projects! Database Providers ================== Interfaces for copy-left licensed MySQL and gdbm DBD drivers, and Berkeley DB DBM all ship as part of the distribution. To avoid licensing incompatibilities, these are not built by default. To enable support, the corresponding use the --with-{provider} option, but be aware that these licenses may introduce licensing implications for your compiled code. Similarly, the bindings for propritary drivers such as Oracle must also be explicitly enabled. Whenever distributing apr-util in combination with database client drivers, always review the license requirements of all components. Using a Subversion Checkout on Unix =================================== If you are building APR from SVN, you need to perform a prerequisite step. You must have autoconf, libtool and python installed for this to work. The prerequisite is simply; ./buildconf If you are building APR from a distribution tarball, buildconf is already run for you, and you do not need autoconf, libtool or python installed or to run buildconf unless you have patched APR's buildconf inputs (such as configure.in, build.conf, virtually any file within the build/ tree, or you add or remove source files). Remember when updating from svn that you must rerun ./buildconf again to effect any changes made to the build schema in your fresh update. Configuring and Building APR on Unix ==================================== Simply; ./configure --prefix=/desired/path/of/apr make make test make install Configure has additional options, ./configure --help will offer you those choices. You may also add CC=compiler CFLAGS="compiler flags" etc. prior to the ./configure statement (on the same line). Please be warned, some flags must be passed as part of the CC command, itself, in order for autoconf to make the right determinations. Eg.; CC="gcc -m64" ./configure --prefix=/desired/path/of/apr will inform APR that you are compiling to a 64 bit CPU, and autoconf must consider that when setting up all of APR's internal and external type declarations. For more verbose output from testall, you may wish to invoke testall with the flag; cd test ./testall -v Building APR RPM files on Linux =============================== Run the following to create SRPMs: rpmbuild -ts apr-<version>.tar.bz2 rpmbuild -ts apr-util-<version>.tar.bz2 Run the following to create RPMs (or build from the SRPMs): rpmbuild -tb apr-<version>.tar.bz2 rpmbuild -tb apr-util-<version>.tar.bz2 Resolve dependencies as appropriate. Configuring and Building APR on Windows ======================================= Using Visual Studio, you can build and run the test validation of APR. The Makefile.win make file has a bunch of documentation about it's options, but a trivial build is simply; nmake -f Makefile.win nmake -f Makefile.win PREFIX=c:\desired\path\of\apr install Note you must manually modify the include\apr.hw file before you build to change default options, see the #define APR_HAS_... or the #define APR_HAVE_... statements. Be careful, many of these aren't appropriate to be modified. The most common change is #define APR_HAVE_IPV6 1 rather than 0 if this build of APR will be used strictly on machines with the IPv6 adapter support installed. It's trivial to include the apr.dsp (for a static library) or the libapr.dsp (for a dynamic library) in your own build project, or you can load apr.dsw in Visual Studio 2002 (.NET) or later, which will convert these for you into apr.sln and associated .vcproj files. When using APR as a dynamic library, nothing special is required, simply link to libapr-2.lib. To use it as a static library, simply define APR_DECLARE_STATIC before you include any apr header files in your source, and link to apr-2.lib instead. On windows, selection of database drivers is via the environment values DBD_LIST (for mysql, oracle, pgsql, sqlite2 and/or sqlite3) and DBM_LIST (db and/or gdbm). DBD odbc and DBM sdbm are unconditionally compiled and installed, do not include these in the list. Generating Test Coverage information with gcc ============================================= If you want to generate test coverage data, use the following steps: ./buildconf CFLAGS="-fprofile-arcs -ftest-coverage" ./configure make cd test make ./testall cd .. make gcov Cryptographic Software Notice ============================= This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See https://www.wassenaar.org/ for more information. The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this Apache Software Foundation distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code. The following provides more details on the included cryptographic software: APR provides an abstract interface for symmetrical cryptographic functions that make use of a general-purpose encryption library, such as OpenSSL, NSS, or the operating system's platform-specific facilities. This interface is known as the apr_crypto interface, with implementation beneath the /crypto directory.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.