프로젝트 소개

iroh는 n0-computer의 네트워킹 라이브러리로, 공개 키로 다이얼하는 API를 제공합니다. IP 주소에 의존하는 대신 애플리케이션은 엔드포인트 아이덴티티에 연결하고, iroh는 연결을 찾아 유지하려고 시도합니다. 직접 연결과 홀 펀칭을 시도하며, 공용 릴레이 서버로 폴백합니다. noq를 통한 QUIC 위에 구축되어 인증된 암호화, 스트림 우선순위가 있는 동시 스트림, 데이터그램 전송을 제공하고 헤드오브라인 블로킹을 피합니다. 이 저장소는 iroh 코어, iroh-relay 클라이언트/서버, iroh-base 공통 타입, DNS/Pkarr 주소 조회를 위한 iroh-dns-server를 포함하는 Rust 워크스페이스입니다. 기존 프로토콜로는 BLAKE3 기반 콘텐츠 주소 지정 블롭 전송을 위한 iroh-blobs, 발행-구독 오버레이 네트워크를 위한 iroh-gossip, iroh-blobs의 최종 일관성 키-값 저장소를 위한 iroh-docs가 있습니다. Rust 사용법은 Endpoint::bind, ALPN으로 연결, 양방향 QUIC 스트림 열기, 프로토콜 핸들러를 받는 Router를 보여줍니다. 다른 언어를 위한 FFI 바인딩은 iroh-ffi를 통해 사용할 수 있습니다. 라이선스는 MIT/Apache-2.0입니다.