공개키만으로 기기를 직접 연결하는 러스트 P2P 라이브러리 'iroh' 깃허브 트렌딩
공개키로 기기를 직접 호출하는 러스트 기반 P2P 네트워킹 라이브러리 '이로(iroh)'가 깃허브 트렌딩에 올랐다. 이로는 "저 기기에 연결하라"고 지시하면 상대가 어디에 있든 가장 빠른 연결을 찾아 유지해 주는 API를 제공한다.
가장 빠른 경로는 직접 연결이므로, 이로는 필요할 경우 홀펀칭(hole-punching)을 시도한다. 이마저 실패하면 공개 릴레이 서버들로 이뤄진 개방형 생태계로 우회한다. 연결을 최대한 빠르게 유지하기 위해 이로는 연결 상태를 지속적으로 측정한다.
이로는 QUIC 위에 구축됐다. 'noq'를 사용해 엔드포인트 간 QUIC 연결을 맺으며, 이를 통해 인증 암호화와 우선순위를 가진 동시 스트림, 데이터그램 전송을 기본 제공하고 헤드오브라인 블로킹을 피한다.
직접 프로토콜을 작성하는 대신 이로 위에 이미 만들어진 프로토콜을 쓸 수 있다. iroh-blobs는 BLAKE3 기반의 콘텐츠 주소 지정 블롭 전송을 제공하며 킬로바이트부터 테라바이트까지 확장된다. iroh-gossip은 평범한 휴대폰 수준의 자원만으로 확장 가능한 발행-구독 오버레이 네트워크를 구성한다. iroh-docs는 iroh-blobs 블롭을 위한 최종 일관성 키-값 저장소를 제공한다.
이로는 러스트에서 쓰기가 가장 쉽다. cargo add iroh로 설치한 뒤 연결 측에서 엔드포인트를 바인딩하고 상대 엔드포인트에 연결해 양방향 QUIC 스트림을 열어 데이터를 주고받는다. 다른 언어에서 쓰려면 FFI 바인딩 저장소인 iroh-ffi를 확인하면 된다.
이 저장소는 여러 크레이트로 구성된 워크스페이스다. iroh는 홀펀칭과 릴레이 통신을 담당하는 핵심 라이브러리이고, iroh-relay는 공개 릴레이 운영에 실제로 쓰이는 릴레이 클라이언트·서버 구현이다. iroh-base는 EndpointId나 RelayUrl 같은 공통 타입을 담고, iroh-dns-server는 EndpointId 주소 조회를 담당하는 DNS 서버로 dns.iroh.link에서 운영된다.
프로젝트의 저작권은 2025년 N0, INC.에 있으며, 아파치 라이선스 2.0과 MIT 라이선스 중 선택할 수 있는 듀얼 라이선스로 공개됐다.