ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π΅ Π²Π΅ΡΡΠΈΡ 0.2.1 Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° posixutils-rs, Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ ΠΎΡ ΡΡΠΈΠ»ΠΈΡΠΈ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Π²Π°Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ° POSIX ΠΈ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ (cp, mv, awk, make, vi, find, sort, wc, xargs, sh, m4, sed ΠΈ Π΄Ρ.). ΠΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΏΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ crate-ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠΎΠ΄ΡΡ Π½Π° 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, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π½Π°ΡΠ°Π»Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΡΡΠ΅Π΄ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° C-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° musl ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ftw Π·Π° ΠΎΠ±Ρ ΠΎΠ΄ Π½Π° Π΄ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈΡΠ΅ Ρ Π·Π°ΡΠΈΡΠ° ΠΎΡ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° Π³ΠΎΠ½ΠΊΠ°.
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ Π°Π½ΠΎΠ½ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° rav1d, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Π²ΠΈΡΠΎΠΊΠΎΠ΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΡΠΎΡΠΌΠ°Ρ AV1, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Rust. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π° ΡΡΠ΅Π· ΠΏΠΎΡΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠ° ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° dav1d, ΠΎΡΠ»ΠΈΡΠ°Π²Π°ΡΠ° ΡΠ΅ Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ. ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈΡΡ ΠΏΠΎΡΡ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ API Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° dav1d. ΠΠ·Π±ΠΎΡΡΡ Π² ΠΏΠΎΠ»Π·Π° Π½Π° ΠΏΠΎΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° Π²Π΅ΡΡΠΈΡ ΡΠ΅ ΠΎΠ±ΡΡΠ½ΡΠ²Π° Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ ΠΈ ΡΠ΅ΡΡΠ²Π°Π½ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° ΠΈ Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ°Ρ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ½ΠΊΠΎΡΡΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΎΡΠΌΠ°ΡΠ° AV1.
Π ΡΠ΅ΠΊΡΡΠΈΡ ΡΠΈ Π²ΠΈΠ΄ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ rav1d ΠΈΠ·ΠΎΡΡΠ°Π²Π° Ρ 6% ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΎΡ dav1d, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅, ΡΠ»Π΅Π΄ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π°, ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠΈΡΠ΅Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠ° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ Π±Π°Π·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½Π° Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ Π² Π²ΠΈΠ΄ Π½Π° ΠΎΠΏΠ°ΡΠ½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π΅ Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ΅Π½ ΠΊΠΎΠ΄ ΠΎΡ dav1d), Π² ΠΊΠΎΠΈΡΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ²Π°Ρ ΡΠ»Π΅Π΄ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡΠ΅ Π½Π° Rust ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠ° (ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΡ ΠΎΠΏΠΈΡ ΠΏΡΠΈ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² Π²ΠΈΠ΄Π΅ΠΎ Π΄Π΅ΠΊΠΎΠ΄Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°, ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ Π² Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΊΠΎΠ΄ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ°, Π° Π½Π΅ Π² Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΠΈ).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
