아파치 포터블 런타임
보이기
![]() | |
개발자 | 아파치 소프트웨어 재단 |
---|---|
안정화 버전 | 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일에 확인함.
외부 링크
[편집]- 아파치 포터블 런타임 - 공식 웹사이트