Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Ladybird ΠΎΠ±ΡΡΠ²ΠΈΠ»ΠΈ ΠΎ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Swift Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠΎΡΡΠ°Π² ΠΊΠΎΠ΄Π° Π½Π° Swift ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π½Π°ΡΠ°ΡΡ ΠΎΡΠ΅Π½ΡΡ, ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΡΠ΅Π»ΠΈΠ·Π° Swift 6 (ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΠΊΡ Swift 5 ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Clang, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΉ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Ladybird Π½Π° Π‘++). ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° Π‘++ ΠΈ Swift, Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Swift Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π°.
ΠΡΠ±ΠΎΡ Swift ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ ΡΡΠ΄ΠΎΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ, ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΡΡΠ³ΠΎΠ½ΠΎΠΌΠΈΠΊΡ. ΠΡΠΎΠ±ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ladybird ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΡΠΈΡΠΎΠ΄Π° Swift, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡΠ½Π΅Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅Π±-ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΡΠ»ΡΡΡΠ°ΡΡΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Swift Π΄Π»Ρ Π½Π΅-Apple ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΡ Ρ C++, ΡΡΠΎ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΡΡΡ ΠΊ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠΌΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Π² ΠΏΡΠΎΠ΅ΠΊΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ Swift Ρ Apple, ΡΠ·ΡΠΊ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌ, ΠΎ ΡΡΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡ Π΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Π½Π° GitHub.
ΠΠ½Π΄ΡΠ΅Π°Ρ ΠΠ»ΠΈΠ½Π³, ΠΎΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ladybird, ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ ΠΎ Rust. ΠΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΠΠ»ΠΈΠ½Π³Π°, Ρ ΠΎΡΡ Rust ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π²ΠΏΠ΅ΡΠ°ΡΠ»ΡΡΡΠ΅ΠΉ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΎΠ½ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π³ΡΠ°ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΠ»ΠΈΠ½Π³ ΠΎΡ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π» ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ Rust ΠΊΠ°ΠΊ «ΡΠΎΠΊΡΠΈΡΠ½ΠΎΠ΅».
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π±ΡΠ°ΡΠ·Π΅Ρ Ladybird ΡΠ°Π·Π²ΠΈΠ²Π°Π»ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ SerenityOS. Π ΠΈΡΠ½Π΅ 2024 Π³ΠΎΠ΄Π°, ΠΠ½Π΄ΡΠ΅Π°Ρ ΠΠ»ΠΈΠ½Π³, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π» Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Nokia ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Safari, ΡΠ΅ΡΠΈΠ» ΠΎΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΡΠ²ΡΡΠΈΡΡ ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. Π ΠΈΡΠ»Π΅ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΠΎΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π² 1 ΠΌΠ»Π½. Π΄ΠΎΠ»Π»Π°ΡΠΎΠ² ΠΈ ΠΏΡΠΈΡΡΡΠΏΠΈΠ» ΠΊ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Ladybird Browser Initiative.
ΠΡΠ°ΡΠ·Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘++ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ BSD. ΠΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ LibWeb, JavaScript-ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ LibJS, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΈ 2D-Π³ΡΠ°ΡΠΈΠΊΠΈ LibGfx, Π΄Π²ΠΈΠΆΠΎΠΊ Π΄Π»Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ LibRegex, XML-ΠΏΠ°ΡΡΠ΅Ρ LibXML, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° WebAssembly (LibWasm), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Unicode LibUnicode, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΎΠΊ LibTextCodec, ΠΏΠ°ΡΡΠ΅Ρ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ Markdown (LibMarkdown), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π°ΠΌΠΈ (LibCrypto, LibTLS), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΡΡ ΠΈΠ²Π°ΠΌΠΈ LibArchive, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π·Π²ΡΠΊΠ° ΠΈ Π²ΠΈΠ΄Π΅ΠΎ (LibAudio, LibVideo) ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° LibCore Ρ ΠΎΠ±ΡΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° MIME-ΡΠΈΠΏΠΎΠ².
Π Ladybird ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°Π½ΠΈΠΌΠ°ΡΡΠΈΠΉΡΡ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ web-ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠΎ ΡΠ΅ΡΠΈ, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Cookie. Π‘Π²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ΅ΡΠ΅Π²ΡΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ Π·Π°ΡΠΈΡΡ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ web-ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π² macOS ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ AppKit, Π² Android — ΡΠΎΠ΄Π½ΠΎΠΉ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ API ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π° Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°Ρ — Qt. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ web-ΡΡΠ°Π½Π΄Π°ΡΡΡ (Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΡΡ Acid3), HTTP/1.1 ΠΈ HTTPS. ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ Π² ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΈΠ»Π΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru