ΠΠ΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° 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
