APR is now also an acronym for 'Apache Portable Runtime', the framework that Apache2 is written on. APR provides a portability layer onto several OSes, primarily Unices, Win32/WinNT, OS/2, and BeOS.

The structures and API of APR cover (thus far) file handling, character set conversion, networking over sockets, string handling (this is C, remember), mutexes, threads/process management, mem mapping, amonst others. It's a growing project.

More than just Apache2 depends on APR: the version control system Subversion has been written on it, several supporting web tools, and I'm now with a group that will use it for shared calendar management. If you're forced to use C, then the APR is a good way to go.