Quinn은 IETF Quic 전송 프로토콜의 순수한 비동기 호환 구현입니다. 이 프로젝트는 2018 년 Dirkjan Ochtman과 Benjamin Saunders에 의해 설립되었으며 그 이후로 30 개가 넘는 릴리스를 보았습니다. 상업 환경에서 Quinn을 사용하는 경우 프로젝트 후원을 고려하십시오.
예
$ cargo run --example server ./
$ cargo run --example client https://localhost:4433/Cargo.toml 클라이언트가 ./Cargo.toml 을 가져 오는 현재 작업 디렉토리를 제공하는 루프백 주소에서 HTTP 0.9 서버를 시작합니다. 기본적으로 서버는 자체 서명 된 인증서를 생성하여 디스크에 저장하여 클라이언트가 자동으로 찾아 신뢰할 수 있습니다.
모래밭
Quinn Endpoint는 사용중인 연결 수에 관계없이 단일 UDP 소켓에 해당합니다. 단일 엔드 포인트에서 높은 집계 데이터 속도를 처리하려면 대부분의 환경에서 기본적으로 구성된 것보다 더 큰 UDP 버퍼가 필요할 수 있습니다. 안정적인 네트워크 링크를 통해 불규칙한 대기 시간 및/또는 처리량을 관찰하면 사용 된 버퍼 크기를 늘리는 것을 고려하십시오. 예를 들어, Quinn에 전달하기 전에 사용할 UDP 소켓의 SO_SNDBUF 및 SO_RCVBUF 옵션을 조정할 수 있습니다. 일부 플랫폼 (예 : Linux)은 UDP 버퍼 크기를 늘리기 위해 프로세스를 위해 고상한 권한 또는 수정 시스템 구성이 필요합니다.
기본적으로 Quinn 클라이언트는 연결하는 서버의 암호화 신원을 검증합니다. 이로 인해 적극적인 경로 공격자가 메시지를 가로 채지 못하지만 일부 인증 기관을 신뢰해야합니다. 많은 목적을 위해이를 위해 서버 용 hept 's encrypt의 인증서를 사용하고 클라이언트의 기본 구성에 의존하여이를 수행 할 수 있습니다.
피어 투 피어, 신뢰 대기업, 의도적으로 불안한 응용 프로그램 또는 도메인 이름으로 서버가 식별되지 않는 경우를 포함한 경우에도 실용적이지 않습니다. rustls 의 dangerous_configuration 기능을 활성화하고 재정의 인증서 검증기가있는 Quinn ClientConfig 직접 구성하여 임의의 인증서 유효성 검사 로직을 구현할 수 있습니다.
자체 인증 기관을 운영하는 것은 합리적이지 않은 경우 RCGEN을 사용하여 주문시 자체 서명 인증서를 생성 할 수 있습니다. Trust-on-First-사용을 지원하기 위해 자체 서명 된 인증서를 자동으로 생성하는 서버는 지속적인 스토리지를 위해 생성 된 인증서를 작성하여 향후 실행에 재사용해야합니다.
모든 피드백을 환영합니다. 문제 추적기에 버그, 문서 요청 및 기타 피드백을 자유롭게 제출하십시오.
Quinn-Proto Test Suite는 시뮬레이션 된 IO를 사용하여 재현성과 특정 타이밍에 민감한 테스트에서 긴 수면을 피합니다. SSLKEYLOGFILE 환경 변수가 설정되면 Tests는 Wireshark와 같은 외부 프로토콜 분석기를 사용하여 검사를 위해 UDP 패킷을 방출하며 각 연결의 클라이언트 측면의 NSS 호환 키 로그는 변수에 지정된 경로에 기록됩니다.
출판 된 상자 릴리스를위한 최소 지원 Rust 버전은 석방 당시 최소 6 개월이됩니다.