Quinn adalah implementasi yang kompatibel dengan async dari protokol transportasi quic IETF. Proyek ini didirikan oleh Dirkjan Ochtman dan Benjamin Saunders sebagai proyek sampingan pada tahun 2018, dan telah melihat lebih dari 30 rilis sejak saat itu. Jika Anda menggunakan Quinn dalam pengaturan komersial, silakan pertimbangkan untuk mensponsori proyek.
Contoh
$ cargo run --example server ./
$ cargo run --example client https://localhost:4433/Cargo.toml Ini meluncurkan server HTTP 0.9 pada alamat loopback yang melayani direktori kerja saat ini, dengan klien mengambil ./Cargo.toml . Secara default, server menghasilkan sertifikat yang ditandatangani sendiri dan menyimpannya ke disk, di mana klien akan secara otomatis menemukan dan mempercayainya.
Tautan
Titik akhir Quinn sesuai dengan soket UDP tunggal, tidak peduli berapa banyak koneksi yang digunakan. Menangani laju data agregat tinggi pada titik akhir tunggal dapat memerlukan buffer UDP yang lebih besar daripada yang dikonfigurasi secara default di sebagian besar lingkungan. Jika Anda mengamati latensi yang tidak menentu dan/atau throughput melalui tautan jaringan yang stabil, pertimbangkan untuk meningkatkan ukuran buffer yang digunakan. Misalnya, Anda dapat menyesuaikan opsi SO_SNDBUF dan SO_RCVBUF dari soket UDP untuk digunakan sebelum meneruskannya ke Quinn. Perhatikan bahwa beberapa platform (misalnya Linux) memerlukan hak istimewa yang ditinggikan atau konfigurasi sistem yang dimodifikasi untuk suatu proses untuk meningkatkan ukuran buffer UDP -nya.
Secara default, klien Quinn memvalidasi identitas kriptografi server yang mereka hubungkan. Ini mencegah penyerang aktif, on-path mencegat pesan, tetapi mengharuskan mempercayai beberapa otoritas sertifikat. Untuk banyak tujuan, ini dapat dicapai dengan menggunakan sertifikat dari Let's Encrypt for Server, dan mengandalkan konfigurasi default untuk klien.
Untuk beberapa kasus, termasuk aplikasi peer-to-peer, trust-on-first-first, sengaja tidak aman, atau kasus apa pun di mana server tidak diidentifikasi dengan nama domain, ini tidak praktis. Logika validasi sertifikat sewenang -wenang dapat diimplementasikan dengan mengaktifkan fitur dangerous_configuration dari rustls dan membangun Quinn ClientConfig dengan verifier sertifikat yang ditimpa dengan tangan.
Saat mengoperasikan otoritas sertifikat Anda sendiri tidak masuk akal, RCGEN dapat digunakan untuk menghasilkan sertifikat yang ditandatangani sendiri berdasarkan permintaan. Untuk mendukung perwalian di-pertama, server yang secara otomatis menghasilkan sertifikat yang ditandatangani sendiri harus menulis sertifikat yang dihasilkan untuk penyimpanan yang terus-menerus dan menggunakannya kembali di masa depan.
Semua umpan balik selamat datang. Jangan ragu untuk mengajukan bug, permintaan dokumentasi dan umpan balik lainnya ke pelacak masalah.
Quinn-Proto Test Suite menggunakan IO simulasi untuk reproduktifitas dan untuk menghindari tidur panjang dalam tes yang sensitif waktu. Jika variabel lingkungan SSLKEYLOGFILE diatur, tes akan memancarkan paket UDP untuk inspeksi menggunakan analisis protokol eksternal seperti Wireshark, dan log kunci yang kompatibel dengan NSS untuk sisi klien dari setiap koneksi akan ditulis ke jalur yang ditentukan dalam variabel.
Versi karat minimum yang didukung untuk rilis peti kami yang diterbitkan akan selalu berusia setidaknya 6 bulan pada saat rilis.