Vert.x core는 JVM에서 반응형 이벤트 루프 기반 애플리케이션을 만들기 위한 저수준 툴킷으로, HTTP, TCP 및 파일 시스템 접근을 지원합니다.
aeron-io/agrona
primitive 컬렉션, off-heap 버퍼, 큐, 타이머 휠 등을 제공하는 고성능 Java 자료구조 및 유틸리티 라이브러리입니다.
- 스타
- 3,266
- 포크
- 459
- 열린 이슈
- 8
- 마지막 커밋
- 어제
어떤 프로젝트인가요?
Agrona는 고성능 애플리케이션을 구축하기 위한 자료구조와 유틸리티 메서드를 제공하는 Java 라이브러리입니다. Aeron 메시지 전송에 사용되며, Simple Binary Encoding 메시지 코덱이 사용하는 버퍼 구현을 제공합니다.
이 라이브러리는 객체 boxing과 가비지 컬렉션 오버헤드를 줄이는 데 중점을 둡니다. open addressing을 사용하는 int 및 long primitive 리스트, 맵, 세트와 set-associative 캐시, lock-free 큐를 포함합니다. 버퍼는 memory ordering 의미 체계를 적용해 on-heap 또는 off-heap 메모리를 감쌀 수 있으며, IPC 통신용 ring 및 broadcast 버퍼는 off-heap으로 구현됩니다.
그 밖에 캐싱과 테스트를 지원하는 clock 추상화, O(1)로 타이머를 등록하고 취소할 수 있는 확장형 타이머 휠, 동시성 서비스용 간단한 agent 프레임워크, off-heap 카운터, 별도의 오류 로그, Snowflake 방식의 ID 생성기 등을 제공합니다. 프로젝트는 Gradle로 빌드하며 Java 17 이상을 대상으로 합니다.
핵심 기능
- 01boxing을 방지하는 primitive int 및 long 리스트, 맵, 세트
- 02memory ordering 의미 체계를 적용해 on-heap 및 off-heap 메모리를 감싸는 버퍼
- 03lock-free 큐와 IPC용 off-heap ring 및 broadcast 버퍼
- 04O(1)로 타이머를 등록하고 취소할 수 있는 확장형 타이머 휠
- 05off-heap 카운터와 별도의 오류 로그
- 06동시성 환경에서 사용할 수 있는 Snowflake 방식의 고유 ID 생성기
활용 사례
- 가비지 컬렉션으로 인한 일시 중단을 최소화해야 하는 저지연 Java 메시징 또는 트레이딩 시스템 구축
- primitive 키를 저장하는 핫 패스에서 java.util 컬렉션 대체
- off-heap ring 또는 broadcast 버퍼를 통한 프로세스 간 데이터 공유
- 타이머 휠로 대량의 타이머 예약
빠른 시작
- 1
Maven Central에서 최신 릴리스를 종속성으로 설치합니다(README의 Maven Central 링크 참조).
- 2
Gradle로 소스에서 프로젝트를 빌드합니다.
./gradlew
사용 전 알아둘 점
- 빌드하고 사용하려면 Java 17 이상이 필요합니다.
- 고성능 코드용 저수준 유틸리티를 제공하므로 일반적인 애플리케이션 개발보다는 특수한 용도를 대상으로 합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- agrona은(는) 무엇인가요?
- primitive 컬렉션, off-heap 버퍼, 큐, 타이머 휠 등을 제공하는 고성능 Java 자료구조 및 유틸리티 라이브러리입니다. Agrona는 고성능 애플리케이션을 구축하기 위한 자료구조와 유틸리티 메서드를 제공하는 Java 라이브러리입니다. Aeron 메시지 전송에 사용되며, Simple Binary Encoding 메시지 코덱이 사용하는 버퍼 구현을 제공합니다.
- agrona은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- agrona은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- agrona은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. agrona의 마지막 커밋은 2026년 11월 6일입니다.
- agrona은(는) 어디에 사용할 수 있나요?
- 가비지 컬렉션으로 인한 일시 중단을 최소화해야 하는 저지연 Java 메시징 또는 트레이딩 시스템 구축 primitive 키를 저장하는 핫 패스에서 java.util 컬렉션 대체 off-heap ring 또는 broadcast 버퍼를 통한 프로세스 간 데이터 공유 타이머 휠로 대량의 타이머 예약
- agrona는 어떻게 설치하나요?
- Maven Central에서 최신 릴리스를 종속성으로 설치합니다(README의 Maven Central 링크 참조). Gradle로 소스에서 프로젝트를 빌드합니다.: ./gradlew
- agrona은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/aeron-io/agrona
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
스레드 간 메시지를 최소한의 push-to-pop 지연으로 전달하는 헤더 전용 C++14 무잠금 링 버퍼 큐입니다.
플랫폼에 관계없이 동일한 32·64·128비트 해시를 생성하는 초고속 비암호학적 해싱용 C 라이브러리입니다.
락 프리 큐, 워크 스틸링 덱, 채널, epoch 기반 GC, 원자 연산, 스코프 스레드를 제공하는 Rust 동시성 도구 모음입니다.
Meta에서 폭넓게 사용되는 Facebook의 오픈소스 C++20 핵심 컴포넌트 라이브러리로, Boost와 std를 보완합니다.
GC 오버헤드를 낮게 유지하면서 힙에 많은 항목을 저장하는 빠른 Go용 동시성 지원 퇴거형 인메모리 캐시입니다.