iroh
SHA-256공개 키 다이얼링으로 IP 주소를 대체하는 모듈식 Rust 네트워크 스택, 자동 홀 펀칭 및 릴레이, 내장된 blob, gossip, docs 프로토콜 조합.
스마트 다운로드
Download 버전 다운로드
v1.0.0 · 4.8 MB
전화 거는 것처럼 네트워크에 연결하면 IP 주소는 변하지만 공개 키는 변하지 않습니다.
주요 기능
- 공개 키 신원 식별 사용, IP 주소 변경에 신경 쓸 필요 없음
- 자동 NAT 홀 펀칭으로 직접 연결, 실패 시 공용 릴레이로 폴백
- QUIC 프로토콜 기반, 내장 암호화, 멀티 스트림 및 데이터그램 지원
- 즉시 사용 가능한 세 가지 프로토콜 제공: blobs(콘텐츠 주소 전송), gossip(게시-구독), docs(키-값 저장)
- 지속적인 성능 테스트로 연결 속도 보장
할 수 없는 것
- •현재 버전은 주로 Rust 개발자를 대상으로 하며, 다른 언어는 FFI 바인딩(iroh-ffi, 아직 개발 중)을 통해야 합니다. 공용 중계 서버는 추가 지연을 초래할 수 있으므로, 프로덕션 환경에서는 자체 중계 구축이나 개인정보 요구 사항 평가를 권장합니다. 홀펀칭 성공률은 네트워크 환경에 의존하며, 일부 엄격한 NAT에서는 항상 중계를 사용할 수 있습니다.
사용 사례
- 点대점 파일 동기화 및 콘텐츠 배포
- 분산형 소셜 네트워크 또는 메시지 시스템
- 사물 인터넷 기기 간 직접 안전 통신
상세 설명
Iroh는 Rust로 작성된 모듈식 네트워크 스택으로, 핵심 개념은 취약한 IP 주소를 대체하는 공개 키 다이얼링입니다. QUIC 프로토콜 기반으로 자동 NAT 홀 펀칭 및 릴레이 폴백을 수행하며, 암호화, 멀티스트림 및 저지연 전송을 제공합니다. libp2p와 같은 기존 프레임워크와 비교하여 iroh는 더 가볍고 사용하기 쉽습니다. 전화 걸듯 상대방의 공개 키만 입력하면 나머지 라우팅 최적화는 라이브러리가 처리합니다. 프로젝트에는 세 가지 조합 가능한 고급 프로토콜(Blobs: BLAKE3 기반 콘텐츠 주소 지정 전송, Gossip: 확장 가능한 발행-구독 오버레이 네트워크, Docs: 최종 일관성 키-값 저장소)이 내장되어 즉시 사용 가능합니다. 현재 GitHub 스타 9.4K, 이중 라이선스를 채택하며, 분산 애플리케이션, IoT 직접 연결, 파일 동기화 등의 시나리오에 적합합니다. 참고: 현재 주로 Rust 언어를 지원하며, FFI 바인딩은 아직 개발 중입니다. 공용 중계 서버에 의존할 경우 지연 시간에 주의해야 합니다.
태그
시작하기
소프트웨어 설치
다운로드한 설치 프로그램을 더블 클릭하고 안내에 따르세요
Rust 툴체인(rustup)이 설치되어 있는지 확인한 후, cargo add iroh를 실행하여 의존성을 추가합니다.
코드에서 Endpoint::bind()를 사용하여 엔드포인트를 생성하고, connect(공개 키, ALPN)를 호출하여 연결을 설정합니다.
QUIC 스트림을 통해 데이터를 전송하고, 수신 측에서는 ProtocolHandler를 구현하여 메시지를 처리한 후, 컴파일 및 실행하면 됩니다.
- Rust 툴체인(rustup)이 설치되어 있는지 확인한 후, cargo add iroh를 실행하여 의존성을 추가합니다.
- 코드에서 Endpoint::bind()를 사용하여 엔드포인트를 생성하고, connect(공개 키, ALPN)를 호출하여 연결을 설정합니다.
- QUIC 스트림을 통해 데이터를 전송하고, 수신 측에서는 ProtocolHandler를 구현하여 메시지를 처리한 후, 컴파일 및 실행하면 됩니다.
SHA-256 체크섬 확인됨
GitHub 공식 Release 페이지에서 추출된 체크섬
SHA256 체크섬
9a3113360f882b510b55e18dfaed57899d8c350d0108ea8827daf42ce3353a3c이 체크섬은 GitHub Release 페이지에서 추출되었습니다. 다운로드 후 파일 무결성을 확인하세요.
이 플랫폼의 모든 SHA-256 체크섬은 프로젝트의 공식 GitHub Release 페이지에서 추출되었으며, 어떠한 변경도 없습니다. GitHub Releases 페이지에서 직접 검증할 수 있습니다.
오픈소스 투명성
GitHub 소스 보기제거 정보
Cargo.toml에서 iroh 의존성 줄을 삭제한 후, `cargo update`를 실행하여 캐시를 정리하세요. 소스에서 클론한 경우에는 프로젝트 디렉터리를 직접 삭제하세요.
추가 의존성 없음
다운로드 후 바로 사용 가능. 추가 런타임이 필요하지 않습니다.