ΠšΠΎΠΌΠΏΠ»Π΅Ρ‚ POSIX ΠΊΠΎΠΌΡƒΠ½Π°Π»Π½ΠΈ услуги ΠΈ AV1 Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ напишан Π²ΠΎ Rust

ОбјавСно Π΅ ΠΈΠ·Π΄Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ posixutils-rs 0.2.1, Ρ‡ΠΈΡ˜Π° Ρ†Π΅Π» Π΅ Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ΅ Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Rust ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π° Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија спомСнати Π²ΠΎ стандардот POSIX ΠΈ Π΄Π° сС Π·Π°Π΄ΠΎΠ²ΠΎΠ»Π°Ρ‚ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Π±Π°Ρ€Π°ΡšΠ° (cp, mv, awk, make, vi, find, ΡΠΎΡ€Ρ‚ΠΈΡ€Π°ΡšΠ΅, wc, xargs, sh, m4, sed, ΠΈΡ‚Π½.). Π—Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚, сСкогаш ΠΊΠΎΠ³Π° Π΅ ΠΌΠΎΠΆΠ½ΠΎ, сС користат постоСчки ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° гајба. ΠšΠΎΠ΄ΠΎΡ‚ posixutils-rs сС дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° MIT.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ фокусиран првСнствСно Π½Π° ΠΏΠΎΡΡ‚ΠΈΠ³Π½ΡƒΠ²Π°ΡšΠ΅ усогласСност со Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π½Π° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° POSIX.2024 ΠΈ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ компатибилност со GNU Π°Π»Π°Ρ‚ΠΊΠΈΡ‚Π΅, Ρ‡ΠΈΡ˜Π° функционалност ΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ сС смСта Π·Π° Π½Π΅Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π½Π°Π΄ΡƒΠ΅Π½Π°. Π‘Π΅ΠΏΠ°ΠΊ, posixutils-rs ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° Π³ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π½Π°Ρ˜ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΈΡ‚Π΅ Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈ GNU utility ΠΎΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΈ сС Π½Π°ΠΎΡ“Π°Π°Ρ‚ Π²ΠΎ постоСчкитС скрипти.

Π Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ uutils, кој ја Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° GNU Coreutils Π²ΠΎ Rust, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈ, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ, ΠΌΠ΅Ρ“Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, создавањС Π½Π° Ρ‚Π°ΠΊΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° систСмот POSIX ΠΊΠ°ΠΊΠΎ vi, awk, bc, m4, cron ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ c99, ΠΊΠ°ΠΊΠΎ ΠΈ минималистички пристап , ΡˆΡ‚ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ само Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΠΎΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ сСт Π½Π° ΠΎΠΏΡ†ΠΈΠΈ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π²ΠΎ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° POSIX ΠΈΠ»ΠΈ Π±Π΅Π· ΠΊΠΎΠΈ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Π²ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΡ‚ posixutils-rs ΠΏΡ€Π²ΠΈΡ‡Π½ΠΎ сС испорачуваат ΠΊΠ°ΠΊΠΎ самостоСн ΠΊΠΎΠ΄ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.

Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², 55 ΠΊΠΎΠΌΡƒΠ½Π°Π»Π½ΠΈ услуги Ρ€Π°Π·Π²ΠΈΠ΅Π½ΠΈ ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ сС усогласСни со POSIX ΠΈ сС Π²ΠΎ Ρ„Π°Π·Π° Π½Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ Π½Π° покриСност, 22 ΠΊΠΎΠΌΡƒΠ½Π°Π»Π½ΠΈ услуги ја ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°Ρ‚Π° функционалност (Π½ΠΎ покриСноста со тСст сè ΡƒΡˆΡ‚Π΅ Π½Π΅ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π°), 20 сС Π²ΠΎ Ρ„Π°Π·Π° Π½Π° Π½Π°Ρ†Ρ€Ρ‚, Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° 44 ΠΊΠΎΠΌΡƒΠ½Π°Π»Π½ΠΈ услуги Π½Π΅ Π΅ ΡƒΡˆΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°. ΠœΠ΅Ρ“Ρƒ Π°Π»Π°Ρ‚ΠΊΠΈΡ‚Π΅ со ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° функционалност: awk, basename, bc, cp, cut, chown, date, diff, file, find, grep, ls, nice, ps, sort, strings, tail, tr, tty, wc, uniq. ΠœΠ΅Ρ“Ρƒ ΠΊΠΎΠΌΡƒΠ½Π°Π»Π½ΠΈΡ‚Π΅ услуги, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° која Π½Π΅ Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚Π°: crontab, c17, cflow, ctags, gettext, ed, ex, iconv, lex, locale, mailx, make, patch, pax, sed, sh, sccs, yacc, uucp, vi .

ΠŸΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π²ΠΎ Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ додавањС Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° Π°Π»Π°Ρ‚ΠΊΠΈΡ‚Π΅ awk, m4, ps, realpath, join, time, fuser ΠΈ gencat, ΠΊΠ°ΠΊΠΎ ΠΈ ΠΏΠΎΡ‡Π΅Ρ‚Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π²ΠΎ срСдини Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° musl C ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ftw Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° Π΄Ρ€ΠΆΠ°Π²Π½ΠΎ Π·Π°ΡˆΡ‚ΠΈΡ‚Π΅Π½Π° Ρ‚Ρ€ΠΊΠ° Π·Π° ΠΏΡ€Π΅ΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Ρ€Π²ΠΎΡ‚ΠΎ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ја Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ΅ Π½Π°Ρ˜Π°Π²Π°Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ rav1d, кој Ρ€Π°Π·Π²ΠΈΠ²Π° Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ со високи пСрформанси Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ Π·Π° ΠΊΠΎΠ΄ΠΈΡ€Π°ΡšΠ΅ Π²ΠΈΠ΄Π΅ΠΎ AV1, напишан Π½Π° Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Rust. Π Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ сС Π²Ρ€ΡˆΠΈ со ΠΏΡ€Π΅Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ΠΎΡ‚ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° dav1d, кој сС ΠΊΠ°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΠΈΡ€Π° со високи пСрформанси, Π²ΠΎ Rust. ΠŸΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π°Ρ‚Π° ΠΏΠΎΡ€Ρ‚Π° Π΅ цСлосно ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½Π° со API Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° dav1d. Π˜Π·Π±ΠΎΡ€ΠΎΡ‚ Π΄Π° сС прСнСсС постоСчка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° намСсто Π΄Π° сС ΠΏΠΈΡˆΡƒΠ²Π° Π½Π°ΡˆΠ°Ρ‚Π° сопствСна Π²Π΅Ρ€Π·ΠΈΡ˜Π° сС ΠΎΠ±Ρ˜Π°ΡΠ½ΡƒΠ²Π° со ΠΆΠ΅Π»Π±Π°Ρ‚Π° Π΄Π° сС користи вСќС Π΄ΠΎΠΊΠ°ΠΆΠ°Π½ ΠΈ тСстиран Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ ΠΊΠ°ΠΊΠΎ основа со Ρ†Π΅Π» Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со компатибилноста ΠΈ Π΄Π° сС Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ ситС слоТСности Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° со Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ AV1.

Π’ΠΎ ΡΠ΅Π³Π°ΡˆΠ½Π°Ρ‚Π° Ρ„ΠΎΡ€ΠΌΠ°, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½Π°Ρ‚Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° rav1d Π΅ 6% Π·Π°Π΄ dav1d Π²ΠΎ пСрформанситС, Π½ΠΎ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π°, ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚, сС ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° сС постигнС ΠΏΠ°Ρ€ΠΈΡ‚Π΅Ρ‚ Π²ΠΎ пСрформанситС. Π—Π° Π΄Π° сС постигнат високи пСрформанси, користСн Π΅ пристап Π²ΠΎ кој основнитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΈ врСдности сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ асСмблСр Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° Π½Π΅Π±Π΅Π·Π±Π΅Π΄Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ (сС користи ΠΊΠΎΠ΄ Π·Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ dav1d), ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π²ΠΎ ΠΊΠΎΠΈ сС Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ‚ ΠΏΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° со ΠΏΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΡ‚ΠΎΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ напишани Π²ΠΎ Rust (ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ‚ΠΎ искуство Π²ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° ранливости Π²ΠΎ Π²ΠΈΠ΄Π΅ΠΎ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° Π΄Π΅ΠΊΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π³Π»Π°Π²Π½ΠΎ сС Ρ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ Π·Π° ΠΏΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° високо Π½ΠΈΠ²ΠΎ, намСсто Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° ниско Π½ΠΈΠ²ΠΎ).

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€