Proyek GNU telah merilis libmicrohttpd 1.0.0, menandai rilis stabil pertama dalam sejarah proyek selama 16 tahun. Pustaka ini ditulis dalam bahasa C dan menyediakan API sederhana untuk menyematkan fungsionalitas server HTTP ke dalam aplikasi. Platform yang didukung meliputi: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 ΠΈ z/OS. ΠΠΎΠ΄ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ LGPL 2.1+. ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 200 ΠΠ, Π° Π² ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ±ΠΎΡΠΊΠΈ β 32 ΠΠ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ libc, Π° ΡΠ°ΠΊΠΆΠ΅ libgnutls ΠΏΡΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ TLS.
Pustaka mendukung protokol HTTP 1.1, TLS, pemrosesan tambahan permintaan POST, menerima koneksi dari beberapa port jaringan, otentikasi dasar dan intisari, IPv6, SHOUTcast, berbagai metode multiplexing koneksi (pilih, polling, epoll) dan model multithreading (misalnya, Anda dapat menggunakan kumpulan thread atau thread per koneksi). Untuk mengurangi overhead yang timbul ketika peralihan konteks antara kernel dan ruang pengguna, jumlah panggilan sistem selama operasi dijaga agar tetap minimum. Keamanan basis kode libmicrohttpd telah dikonfirmasi oleh audit yang dilakukan oleh Mozilla dan Red Hat.
Perubahan paling mencolok dibandingkan rilis terakhir:
- Kode untuk menguraikan permintaan klien telah ditulis ulang dan sepenuhnya mematuhi persyaratan RFC 9110 dan 9112. Mode kepatuhan spesifikasi yang ketat dan lunak disediakan untuk menyeimbangkan antara kompatibilitas atau keamanan yang lebih tinggi.
- Penerapan otentikasi intisari telah dikerjakan ulang, yang secara signifikan memperluas dukungan untuk fitur-fitur yang ada di RFC 7617. Ini termasuk dukungan untuk SHA-512, userhash dan nama pengguna dalam notasi yang diperluas. Dukungan untuk RFC 2069 lama dan kemampuan untuk menggunakan hash MD5 dan SHA-256 juga dipertahankan.
- Peningkatan kinerja dalam lingkungan multi-utas dan mode polling soket.
- Penerapan otentikasi dasar telah dikerjakan ulang, dengan fungsi tambahan yang ditawarkan di ABI.
- Kode inisialisasi GnuTLS dikerjakan ulang. Menambahkan kemampuan untuk menggunakan konfigurasi sistem GnuTLS standar dan khusus libmicrohttpd, serta dukungan untuk mengesampingkan pengaturan konfigurasi sistem GnuTLS individual.
Di masa depan, direncanakan untuk mengembangkan cabang libmicrohttpd 2, yang akan memberikan dukungan untuk protokol HTTP/2 dan HTTP/3, serta berupaya menyederhanakan API dan mendukung berbagai backend untuk TLS. Permulaan pengerjaan cabang baru ini akan didanai oleh Sovereign Foundation, yang didirikan di Jerman untuk merangsang pengembangan infrastruktur digital terbuka dan ekosistem sumber terbuka.
Sumber: opennet.ru
