아파치 포터블 런타임

아파치 포터블 런타임(Apache Portable Runtime, APR)은 아파치 웹 서버를 위한 지원 라이브러리이다. 이는 하부 운영체제(OS)에 매핑되는 일련의 API를 제공한다. OS가 특정 기능을 지원하지 않는 경우 APR은 에뮬레이션을 제공한다. 따라서 프로그래머는 APR을 사용하여 프로그램을 플랫폼 전반에 걸쳐 진정한 이식성을 갖도록 만들 수 있다.

APR은 원래 아파치 HTTP 서버의 일부를 형성했지만 아파치 소프트웨어 재단은 이를 별도의 프로젝트로 분리했다. 다른 응용 프로그램은 이를 사용하여 플랫폼 독립성을 달성할 수 있다.

 기능 
APR이 제공하는 플랫폼 독립적인 기능의 범위는 다음과 같다.
 메모리 할당 및 메모리 풀 기능
 원자적 연산
 동적 라이브러리 처리
 파일 I/O
 명령어-인수 파싱
 잠금
 해시 테이블 및 배열
 Mmap 기능
 네트워크 소켓 및 프로토콜
 스레드, 프로세스 및 뮤텍스 기능
 공유 메모리 기능
 스키마리스 기능
 시간 루틴
 사용자 및 그룹 ID 서비스

 유사한 프로젝트 
 GLib - 유사한 기능을 제공한다. 훨씬 더 많은 데이터 구조와 OS 독립적인 기능을 지원하지만 IPC 관련 기능은 더 적다. (GLib에는 로컬 및 전역 잠금과 공유 메모리 관리가 부족하다.)
 넷스케이프 포터블 런타임(Netscape Portable Runtime, NSPR)은 모질라 프로젝트에서 사용되는 크로스 플랫폼 추상화 라이브러리이다. 모질라 응용 프로그램 프레임워크 (XPFE)의 다른 하위 프로젝트에서 사용하여 크로스 플랫폼 그래픽 사용자 인터페이스(GUI) 기능을 제공하는 데 사용된다.
 어댑티브 커뮤니케이션즈 환경(Adaptive Communication Environment, ACE)는 APR과 기능이 유사한 C++로 작성된 객체 지향 라이브러리이다. 상용 제품에 널리 배포되어 있다.
 commonc++는 시스템 프로그래밍을 위한 크로스 플랫폼 C++ 클래스 라이브러리로 APR과 거의 동일한 기능을 제공한다.
 POCO는 개념은 유사하지만 APR보다 더 광범위한 최신 C++ 프레임워크이다.
 WxWidgets는 데이터베이스 통신, IPC 및 네트워킹 기능에 대한 추상화 클래스도 제공하는 객체 지향 크로스 플랫폼 GUI 라이브러리이다.
 KDE 프레임워크 - KDE SC에서 사용된다.

 각주 

 외부 링크 



분류:C 라이브러리
분류:아파치 소프트웨어 재단 프로젝트
분류:API
분류:C로 작성된 자유 소프트웨어
분류:자유 라이브러리
분류:아파치 라이선스 소프트웨어