아파치 포터블 런타임
보이기
	
	
| 개발자 | 아파치 소프트웨어 재단 | 
|---|---|
| 안정화 버전 | 1.7.4
   / 2023년 4월 16일[1]  | 
| 저장소 | |
| 프로그래밍 언어 | C | 
| 운영 체제 | 크로스 플랫폼 | 
| 종류 | 개발 라이브러리 | 
| 라이선스 | 아파치 라이선스 2.0 | 
| 웹사이트 | apr | 
아파치 포터블 런타임(Apache Portable Runtime, APR)은 아파치 웹 서버를 위한 지원 라이브러리이다. 이는 하부 운영체제(OS)에 매핑되는 일련의 API를 제공한다.[2] OS가 특정 기능을 지원하지 않는 경우 APR은 에뮬레이션을 제공한다. 따라서 프로그래머는 APR을 사용하여 프로그램을 플랫폼 전반에 걸쳐 진정한 이식성을 갖도록 만들 수 있다.
APR은 원래 아파치 HTTP 서버의 일부를 형성했지만 아파치 소프트웨어 재단은 이를 별도의 프로젝트로 분리했다. 다른 응용 프로그램은 이를 사용하여 플랫폼 독립성을 달성할 수 있다.
기능
[편집]APR이 제공하는 플랫폼 독립적인 기능의 범위는 다음과 같다.[3]
- 메모리 할당 및 메모리 풀 기능
 - 원자적 연산
 - 동적 라이브러리 처리
 - 파일 I/O
 - 명령어-인수 파싱
 - 잠금
 - 해시 테이블 및 배열
 - Mmap 기능
 - 네트워크 소켓 및 프로토콜
 - 스레드, 프로세스 및 뮤텍스 기능
 - 공유 메모리 기능
 - 스키마리스 기능
 - 시간 루틴
 - 사용자 및 그룹 ID 서비스
 
유사한 프로젝트
[편집]- GLib - 유사한 기능을 제공한다. 훨씬 더 많은 데이터 구조와 OS 독립적인 기능을 지원하지만 IPC 관련 기능은 더 적다. (GLib에는 로컬 및 전역 잠금과 공유 메모리 관리가 부족하다.)
 - 넷스케이프 포터블 런타임(Netscape Portable Runtime, NSPR)은 모질라 프로젝트에서 사용되는 크로스 플랫폼 추상화 라이브러리이다. 모질라 응용 프로그램 프레임워크 (XPFE)의 다른 하위 프로젝트에서 사용하여 크로스 플랫폼 그래픽 사용자 인터페이스(GUI) 기능을 제공하는 데 사용된다.
 - 어댑티브 커뮤니케이션즈 환경(Adaptive Communication Environment, ACE)는 APR과 기능이 유사한 C++로 작성된 객체 지향 라이브러리이다. 상용 제품에 널리 배포되어 있다.[4]
 - commonc++는 시스템 프로그래밍을 위한 크로스 플랫폼 C++ 클래스 라이브러리로 APR과 거의 동일한 기능을 제공한다.
 - POCO는 개념은 유사하지만 APR보다 더 광범위한 최신 C++ 프레임워크이다.
 - WxWidgets는 데이터베이스 통신, IPC 및 네트워킹 기능에 대한 추상화 클래스도 제공하는 객체 지향 크로스 플랫폼 GUI 라이브러리이다.
 - KDE 프레임워크 - KDE SC에서 사용된다.
 
각주
[편집]- ↑ “Apache Portable Runtime APR 1.7.4 Released”. 2023년 10월 7일에 확인함.
 - ↑ 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. 2023년 9월 23일에 확인함.
 - ↑ “ACE and TAO Success Stories”. 2008년 8월 29일에 원본 문서에서 보존된 문서. 2008년 7월 31일에 확인함.
 
외부 링크
[편집]- 아파치 포터블 런타임 - 공식 웹사이트