Набор ΠΎΡ‚ POSIX ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΈ AV1 Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€, написан Π½Π° Rust

Π‘Π΅ΡˆΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° вСрсията Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° posixutils-rs 0.2.1, насочСн към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust Π½Π° колСкция ΠΎΡ‚ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π·Π° командния Ρ€Π΅Π΄, спомСнати Π² стандарта POSIX ΠΈ отговарящи Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ изисквания (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed ΠΈ Π΄Ρ€.). По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ възмоТно, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ с каси. ΠšΠΎΠ΄ΡŠΡ‚ posixutils-rs сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° Π½Π° MIT.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π΅ фокусиран основно Π²ΡŠΡ€Ρ…Ρƒ постиганС Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с изискванията Π½Π° спСцификацията POSIX.2024 ΠΈ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° осигури ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° GNU, чиято функционалност сС Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚ΠΎ нСобосновано Ρ€Π°Π·Π΄ΡƒΡ‚Π°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, posixutils-rs ΠΏΠ»Π°Π½ΠΈΡ€Π° Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈ Π½Π°ΠΉ-популярнитС ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° GNU, ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ Π² ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ скриптовС.

Π Π°Π·Π»ΠΈΠΊΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€