Keluaran stabil pertama Arti, pelaksanaan rasmi Tor dalam Rust

Pembangun rangkaian Tor tanpa nama telah mencipta keluaran stabil pertama (1.0.0) projek Arti, yang membangunkan klien Tor yang ditulis dalam Rust. Keluaran 1.0 ditandakan sebagai sesuai untuk digunakan oleh pengguna umum dan menyediakan tahap privasi, kebolehgunaan dan kestabilan yang sama seperti pelaksanaan C utama. API yang ditawarkan untuk menggunakan fungsi Arti dalam aplikasi lain juga telah distabilkan. Kod itu diedarkan di bawah lesen Apache 2.0 dan MIT.

Tidak seperti pelaksanaan C, yang mula-mula direka bentuk sebagai proksi SOCKS dan kemudian disesuaikan dengan keperluan lain, Arti pada mulanya dibangunkan dalam bentuk perpustakaan boleh terbenam modular yang boleh digunakan oleh pelbagai aplikasi. Di samping itu, apabila membangunkan projek baharu, semua pengalaman pembangunan Tor yang lalu diambil kira, yang mengelakkan masalah seni bina yang diketahui dan menjadikan projek itu lebih modular dan cekap.

Sebab untuk menulis semula Tor dalam Rust adalah keinginan untuk mencapai tahap keselamatan kod yang lebih tinggi dengan menggunakan bahasa selamat memori. Menurut pembangun Tor, sekurang-kurangnya separuh daripada semua kelemahan yang dipantau oleh projek akan dihapuskan dalam pelaksanaan Rust jika kod itu tidak menggunakan blok "tidak selamat". Karat juga akan memungkinkan untuk mencapai kelajuan pembangunan yang lebih pantas daripada menggunakan C, disebabkan oleh ekspresi bahasa dan jaminan ketat yang membolehkan anda mengelak daripada membuang masa untuk menyemak dua kali dan menulis kod yang tidak perlu.

Berdasarkan hasil pembangunan versi pertama, penggunaan bahasa Rust membenarkan dirinya sendiri. Sebagai contoh, diperhatikan bahawa pada setiap peringkat, lebih sedikit ralat dibuat dalam kod Rust berbanding pembangunan setanding dalam C - ralat yang timbul semasa proses pembangunan adalah berkaitan terutamanya dengan logik dan semantik. Pengkompil rustc yang terlalu menuntut, yang dinyatakan oleh sesetengah orang sebagai kelemahan, sebenarnya ternyata menjadi rahmat, kerana jika kod itu menyusun dan lulus ujian, kemungkinan ketepatannya meningkat dengan ketara.

Mengusahakan varian baharu juga mengesahkan peningkatan dalam kelajuan pembangunan, yang bukan sahaja disebabkan oleh fakta bahawa kefungsian dicipta semula berdasarkan templat sedia ada, tetapi juga oleh semantik Rust yang lebih ekspresif, perpustakaan fungsi yang mudah, dan penggunaan keselamatan kod Rust. kemampuan. Salah satu kelemahan ialah saiz pemasangan yang besar - memandangkan perpustakaan Rust standard tidak dibekalkan pada sistem secara lalai, ia mesti disertakan dalam pakej yang ditawarkan untuk dimuat turun.

Keluaran 1.0 tertumpu terutamanya pada kerja asas dalam peranan pelanggan. Dalam versi 1.1 ia dirancang untuk melaksanakan sokongan untuk pengangkutan plug-in dan jambatan untuk memintas penyekatan. Versi 1.2 dijangka menyokong perkhidmatan bawang dan ciri berkaitan, seperti protokol kawalan kesesakan (RTT Congestion Control) dan perlindungan terhadap serangan DDoS. Mencapai pariti dengan klien C dirancang untuk cawangan 2.0, yang juga akan menawarkan pengikatan untuk menggunakan Arti dalam kod dalam pelbagai bahasa pengaturcaraan.

Dalam beberapa tahun akan datang, kerja akan menumpukan pada melaksanakan fungsi yang diperlukan untuk menjalankan geganti dan pelayan direktori. Apabila kod Rust mencapai tahap yang boleh menggantikan sepenuhnya versi C, pembangun berhasrat untuk memberikan Arti status pelaksanaan utama Tor dan berhenti mengekalkan pelaksanaan C. Versi C akan ditamatkan secara beransur-ansur untuk membolehkan penghijrahan yang lancar.

Sumber: opennet.ru

Tambah komen