ΠΡΠΎΠ΅ΠΊΡ GNU ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» Π²ΡΠΏΡΡΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ libmicrohttpd 0.9.74, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΡΡΠΎΠΉ API Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ HTTP-ΡΠ΅ΡΠ²Π΅ΡΠ° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» HTTP 1.1, TLS, ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ POST-Π·Π°ΠΏΡΠΎΡΠΎΠ², basic- ΠΈ digest-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, IPv6, SHOUTcast ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ (select, poll, pthread, thread pool). Π‘ΡΠ΅Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Android, macOS, Win32, Symbian ΠΈ z/OS. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ LGPL 2.1+.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° WebSockets, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
- Π£Π»ΡΡΡΠ΅Π½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² HTTP 1.0/1.1.
- ΠΠ΅ΡΠ΅Π΄Π΅Π»Π°Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ chunked-Π·Π°ΠΏΡΠΎΡΠΎΠ².
- ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠ΄ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΏΡΠΈ ΠΎΡΠ²Π΅ΡΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ chunked-Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ, ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΠΌ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Content-Length.
- Π’ΠΎΡΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠ² ΠΏΠΎΠ²ΡΡΠ΅Π½Π° Ρ ΡΠ΅ΠΊΡΠ½Π΄ Π΄ΠΎ ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄.
- ΠΡΠΎΠ²Π΅Π΄Π΅Π½Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΡΡΡΠ΅Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ, ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΊΠ»ΡΡΡΠ½ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠΉΡΡ ΡΠ°Π·Π±ΠΎΡ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° HTTP.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΡΠ°Π±ΡΠ»ΡΡΠΈΠΈ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°, Π½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»Π° Π² Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ².
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠ±ΠΎΡΠΎΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ ‘—enable-sanitizers[=address,undefined,leak,user-poison]’ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΊΠΎΠ΄Π΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ°ΠΉΠ» ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π² MSVC.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru