Rust: новый подход к снаряду...

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 19 дек 2022, 02:35

Olej писал(а):
16 дек 2022, 04:11
Пока (из того что я читал) меня интересуют:
Детально - как подключаются эти (и все любые другие) крейты в Rust с помощью менеджера cargo - расписано здесь, в конкретной теме: регулярные выражения в программном коде

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 21 дек 2022, 12:01

Olej писал(а):
27 окт 2022, 19:43
Изображение
Первые книги ушли в магазин 28 ноября (по информации из издательства).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 06 янв 2023, 18:47

Olej писал(а):
19 дек 2022, 02:35
как подключаются эти (и все любые другие) крейты в Rust с помощью менеджера cargo
Обратная задача - Как публиковать свои пакеты на Crates.io :
17 Декабря 2017 • Михаил Панков

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 17 апр 2023, 16:06

По Rust смешная (хорошая :!: ) статья: Rewritten in Rust: Modern Alternatives of Command-Line Tools
2020-07-30 · 4 min read

Shell is the essential tool for every programmer. The more familiar you become with the available tools, the more efficient you can be with using your computer. Here's a list of command-line tools written in Rust that aim to provide modern, often much faster, alternatives to the existing shell commands.
...
Все упоминаемые GIT с кодом открываются...

Это очень интересные примеры, для разбирательства не только с кодом, но и с техникой работы с проектами Rust :!:
И вовсе не элементарные учебные примеры!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 17 апр 2023, 18:47

Olej писал(а):
17 апр 2023, 16:06
GIT с кодом открываются...
sharkdp / bat

Код: Выделить всё

olej@R420:~/2023/Rust$ git clone https://github.com/sharkdp/bat.git
Клонирование в «bat»...
remote: Enumerating objects: 14514, done.
remote: Counting objects: 100% (259/259), done.
remote: Compressing objects: 100% (138/138), done.
remote: Total 14514 (delta 137), reused 183 (delta 102), pack-reused 14255
Получение объектов: 100% (14514/14514), 30.24 МиБ | 2.61 МиБ/с, готово.
Определение изменений: 100% (9666/9666), готово.
olej@R420:~/2023/Rust$ 
olej@R420:~/2023/Rust$ du -hs bat 
42M	bat
[code]
[code]
olej@R420:~/2023/Rust$ cd bat
Сборка:

Код: Выделить всё

olej@R420:~/2023/Rust/bat$ cargo build --release
  Downloaded form_urlencoded v1.1.0
  Downloaded base64 v0.21.0
  Downloaded num_threads v0.1.6
  Downloaded percent-encoding v2.2.0
  Downloaded ryu v1.0.11
  Downloaded rustix v0.36.8
  Downloaded git2 v0.16.1
  Downloaded safemem v0.3.3
  Downloaded same-file v1.0.6
  Downloaded unicode-bidi v0.3.8
  Downloaded sys-info v0.9.1
  Downloaded serde_yaml v0.8.26
  Downloaded unicode-ident v1.0.4
  Downloaded syn v2.0.12
  Downloaded serde_json v1.0.85
  Downloaded ansi_colours v1.2.1
  Downloaded yaml-rust v0.4.5
  Downloaded aho-corasick v0.7.19
  Downloaded bytesize v1.2.0
  Downloaded cc v1.0.73
  Downloaded clap_lex v0.3.2
  Downloaded bytemuck v1.12.1
  Downloaded clap v4.1.8
  Downloaded console v0.15.5
  Downloaded dirs v5.0.0
  Downloaded globset v0.4.10
  Downloaded grep-cli v0.1.7
  Downloaded is-terminal v0.4.4
  Downloaded io-lifetimes v1.0.5
  Downloaded time v0.3.14
  Downloaded itoa v1.0.3
  Downloaded onig v6.4.0
  Downloaded linked-hash-map v0.5.6
  Downloaded once_cell v1.17.0
  Downloaded proc-macro-hack v0.5.19
  Downloaded os_str_bytes v6.3.0
  Downloaded regex-automata v0.1.10
  Downloaded plist v1.4.3
  Downloaded serde v1.0.159
  Downloaded serde_derive v1.0.159
  Downloaded proc-macro2 v1.0.54
  Downloaded quick-xml v0.28.1
  Downloaded shell-escape v0.1.5
  Downloaded semver v1.0.16
  Downloaded shell-words v1.1.0
  Downloaded tinyvec_macros v0.1.0
  Downloaded termcolor v1.1.3
  Downloaded unicode-width v0.1.10
  Downloaded walkdir v2.3.3
  Downloaded atty v0.2.14
  Downloaded tinyvec v1.6.0
  Downloaded content_inspector v0.2.4
  Downloaded dirs-sys v0.4.0
  Downloaded line-wrap v0.1.1
  Downloaded indexmap v1.9.1
  Downloaded encoding-index-japanese v1.20141219.5
  Downloaded pkg-config v0.3.25
  Downloaded encoding-index-singlebyte v1.20141219.5
  Downloaded encoding_index_tests v0.1.4
  Downloaded thiserror v1.0.40
  Downloaded fnv v1.0.7
  Downloaded jobserver v0.1.25
  Downloaded url v2.3.1
  Downloaded idna v0.3.0
  Downloaded unicode-normalization v0.1.22
  Downloaded hashbrown v0.12.3
  Downloaded syn v1.0.104
  Downloaded wild v2.1.0
  Downloaded path_abs v0.5.1
  Downloaded encoding v0.2.33
  Downloaded rgb v0.8.34
  Downloaded thiserror-impl v1.0.40
  Downloaded git-version-macro v0.3.5
  Downloaded terminal_size v0.2.5
  Downloaded encoding-index-korean v1.20141219.5
  Downloaded git-version v0.3.5
  Downloaded encoding-index-simpchinese v1.20141219.5
  Downloaded clircle v0.3.0
  Downloaded bugreport v0.5.0
  Downloaded nu-ansi-term v0.47.0
  Downloaded bincode v1.3.3
  Downloaded std_prelude v0.2.12
  Downloaded encoding-index-tradchinese v1.20141219.5
  Downloaded regex-syntax v0.6.27
  Downloaded bstr v1.1.0
  Downloaded syntect v5.0.0
  Downloaded onig_sys v69.8.1
  Downloaded linux-raw-sys v0.1.4
  Downloaded libgit2-sys v0.14.2+1.5.1
  Downloaded libz-sys v1.1.8
  Downloaded 90 crates (11.6 MB) in 15.73s (largest was `libz-sys` at 2.5 MB)
   Compiling libc v0.2.137
   Compiling proc-macro2 v1.0.54
   Compiling quote v1.0.26
   Compiling unicode-ident v1.0.4
   Compiling io-lifetimes v1.0.5
   Compiling pkg-config v0.3.25
   Compiling rustix v0.36.8
   Compiling memchr v2.5.0
   Compiling serde_derive v1.0.159
   Compiling serde v1.0.159
   Compiling cfg-if v1.0.0
   Compiling bitflags v1.3.2
   Compiling autocfg v1.1.0
   Compiling linux-raw-sys v0.1.4
   Compiling encoding_index_tests v0.1.4
   Compiling once_cell v1.17.0
   Compiling tinyvec_macros v0.1.0
   Compiling syn v1.0.104
   Compiling log v0.4.17
   Compiling proc-macro-hack v0.5.19
   Compiling itoa v1.0.3
   Compiling regex-syntax v0.6.27
   Compiling crc32fast v1.3.2
   Compiling hashbrown v0.12.3
   Compiling os_str_bytes v6.3.0
   Compiling strsim v0.10.0
   Compiling regex-automata v0.1.10
   Compiling safemem v0.3.3
   Compiling lazy_static v1.4.0
   Compiling termcolor v1.1.3
   Compiling unicode-bidi v0.3.8
   Compiling thiserror v1.0.40
   Compiling ryu v1.0.11
   Compiling same-file v1.0.6
   Compiling fnv v1.0.7
   Compiling adler v1.0.2
   Compiling percent-encoding v2.2.0
   Compiling linked-hash-map v0.5.6
   Compiling serde_json v1.0.85
   Compiling num_threads v0.1.6
   Compiling bytemuck v1.12.1
   Compiling bugreport v0.5.0
   Compiling base64 v0.21.0
   Compiling semver v1.0.16
   Compiling shell-escape v0.1.5
   Compiling std_prelude v0.2.12
   Compiling unicode-width v0.1.10
   Compiling bytesize v1.2.0
   Compiling wild v2.1.0
   Compiling shell-words v1.1.0
   Compiling nu-ansi-term v0.47.0
   Compiling tinyvec v1.6.0
   Compiling encoding-index-korean v1.20141219.5
   Compiling encoding-index-singlebyte v1.20141219.5
   Compiling encoding-index-japanese v1.20141219.5
   Compiling encoding-index-simpchinese v1.20141219.5
   Compiling encoding-index-tradchinese v1.20141219.5
   Compiling line-wrap v0.1.1
   Compiling walkdir v2.3.3
   Compiling miniz_oxide v0.6.2
   Compiling form_urlencoded v1.1.0
   Compiling clap_lex v0.3.2
   Compiling path_abs v0.5.1
   Compiling yaml-rust v0.4.5
   Compiling rgb v0.8.34
   Compiling indexmap v1.9.1
   Compiling encoding v0.2.33
   Compiling ansi_colours v1.2.1
   Compiling flate2 v1.0.25
   Compiling aho-corasick v0.7.19
   Compiling quick-xml v0.28.1
   Compiling bstr v1.1.0
   Compiling content_inspector v0.2.4
   Compiling syn v2.0.12
   Compiling unicode-normalization v0.1.22
   Compiling idna v0.3.0
   Compiling time v0.3.14
   Compiling atty v0.2.14
   Compiling dirs-sys v0.4.0
   Compiling console v0.15.5
   Compiling dirs v5.0.0
   Compiling jobserver v0.1.25
   Compiling regex v1.7.0
   Compiling url v2.3.1
   Compiling cc v1.0.73
   Compiling libz-sys v1.1.8
   Compiling sys-info v0.9.1
   Compiling onig_sys v69.8.1
   Compiling libgit2-sys v0.14.2+1.5.1
   Compiling globset v0.4.10
   Compiling grep-cli v0.1.7
   Compiling is-terminal v0.4.4
   Compiling terminal_size v0.2.5
   Compiling clap v4.1.8
   Compiling git-version-macro v0.3.5
   Compiling git-version v0.3.5
   Compiling thiserror-impl v1.0.40
   Compiling onig v6.4.0
   Compiling bat v0.23.0 (/home/olej/2023/Rust/bat)
   Compiling git2 v0.16.1
   Compiling bincode v1.3.3
   Compiling plist v1.4.3
   Compiling serde_yaml v0.8.26
   Compiling clircle v0.3.0
   Compiling syntect v5.0.0
    Finished release [optimized] target(s) in 1m 48s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 17 апр 2023, 19:00

Olej писал(а):
17 апр 2023, 18:47
Сборка:

Код: Выделить всё

olej@R420:~/2023/Rust/bat$ ls -l target
итого 8
-rw-rw-r-- 1 olej olej  177 апр 17 18:40 CACHEDIR.TAG
drwxrwxr-x 7 olej olej 4096 апр 17 18:42 release

Код: Выделить всё

olej@R420:~/2023/Rust/bat$ ls -l target/release/
итого 9464
-rwxrwxr-x  2 olej olej 5282904 апр 17 18:42 bat
-rw-rw-r--  1 olej olej    2004 апр 17 18:42 bat.d
drwxrwxr-x 49 olej olej    4096 апр 17 18:40 build
drwxrwxr-x  2 olej olej   28672 апр 17 18:42 deps
drwxrwxr-x  2 olej olej    4096 апр 17 18:40 examples
drwxrwxr-x  2 olej olej    4096 апр 17 18:40 incremental
-rw-rw-r--  1 olej olej    1557 апр 17 18:42 libbat.d
-rw-rw-r--  2 olej olej 4353302 апр 17 18:41 libbat.rlib
Olej писал(а):
17 апр 2023, 16:06
И вовсе не элементарные учебные примеры!
С цветовой разметкой кода на Rust:

Код: Выделить всё

olej@R420:~/2023/Rust/bat$ target/release/bat src/bin/bat/assets.rs
Вложения
Снимок экрана от 2023-04-17 18-56-24.png
Снимок экрана от 2023-04-17 18-56-24.png (216.9 КБ) 781 просмотр

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 17 апр 2023, 19:29

Olej писал(а):
17 апр 2023, 16:06
GIT с кодом открываются...

Код: Выделить всё

olej@R420:~/2023/Rust$ git clone https://github.com/bootandy/dust.git
Клонирование в «dust»...
remote: Enumerating objects: 2440, done.
remote: Counting objects: 100% (37/37), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 2440 (delta 13), reused 20 (delta 7), pack-reused 2403
Получение объектов: 100% (2440/2440), 624.89 КиБ | 227.00 КиБ/с, готово.
Определение изменений: 100% (1546/1546), готово.

Код: Выделить всё

olej@R420:~/2023/Rust$ du -hs dust
1,3M	dust

Код: Выделить всё

olej@R420:~/2023/Rust$ cd dust/
Olej писал(а):
17 апр 2023, 18:47
Сборка:
Сборка всех проектов - однотипная, в полном соответствии тому тулчайну, установка которого описана в начале темы...
Нужно держать в уме, что сборка в Rust не быстрая :!:

Код: Выделить всё

olej@R420:~/2023/Rust/dust$ time cargo build --release
  Downloaded io-lifetimes v1.0.6
  Downloaded os_str_bytes v6.4.1
  Downloaded scopeguard v1.1.0
  Downloaded roff v0.2.1
  Downloaded clap_lex v0.2.4
  Downloaded ansi_term v0.12.1
  Downloaded thousands v0.2.0
  Downloaded thiserror-impl v1.0.39
  Downloaded config-file v0.2.3
  Downloaded memoffset v0.8.0
  Downloaded dirs-sys v0.3.7
  Downloaded thiserror v1.0.39
  Downloaded num_cpus v1.15.0
  Downloaded clap_mangen v0.1.11
  Downloaded crossbeam-deque v0.8.3
  Downloaded either v1.8.1
  Downloaded nu-ansi-term v0.46.0
  Downloaded overload v0.1.1
  Downloaded lscolors v0.13.0
  Downloaded textwrap v0.16.0
  Downloaded crossbeam-utils v0.8.15
  Downloaded directories v4.0.1
  Downloaded toml v0.5.11
  Downloaded termcolor v1.2.0
  Downloaded clap_complete v3.2.5
  Downloaded proc-macro2 v1.0.52
  Downloaded crossbeam-epoch v0.9.14
  Downloaded indexmap v1.9.2
  Downloaded stfu8 v0.2.6
  Downloaded serde_derive v1.0.156
  Downloaded serde v1.0.156
  Downloaded rayon-core v1.11.0
  Downloaded crossbeam-channel v0.5.7
  Downloaded sysinfo v0.27.8
  Downloaded rayon v1.7.0
  Downloaded clap v3.2.23
  Downloaded regex v1.7.1
  Downloaded rustix v0.36.9
  Downloaded syn v1.0.109
  Downloaded libc v0.2.140
  Downloaded 40 crates (3.0 MB) in 10.00s
   Compiling autocfg v1.1.0
   Compiling libc v0.2.140
   Compiling proc-macro2 v1.0.52
   Compiling unicode-ident v1.0.8
   Compiling quote v1.0.26
   Compiling syn v1.0.109
   Compiling crossbeam-utils v0.8.15
   Compiling cfg-if v1.0.0
   Compiling hashbrown v0.12.3
   Compiling os_str_bytes v6.4.1
   Compiling memchr v2.5.0
   Compiling bitflags v1.3.2
   Compiling strsim v0.10.0
   Compiling scopeguard v1.1.0
   Compiling serde_derive v1.0.156
   Compiling textwrap v0.16.0
   Compiling termcolor v1.2.0
   Compiling serde v1.0.156
   Compiling io-lifetimes v1.0.6
   Compiling rayon-core v1.11.0
   Compiling roff v0.2.1
   Compiling thiserror v1.0.39
   Compiling rustix v0.36.9
   Compiling either v1.8.1
   Compiling overload v0.1.1
   Compiling regex-syntax v0.6.28
   Compiling linux-raw-sys v0.1.4
   Compiling ansi_term v0.12.1
   Compiling lazy_static v1.4.0
   Compiling once_cell v1.17.1
   Compiling unicode-width v0.1.10
   Compiling thousands v0.2.0
   Compiling nu-ansi-term v0.46.0
   Compiling clap_lex v0.2.4
   Compiling indexmap v1.9.2
   Compiling memoffset v0.8.0
   Compiling crossbeam-epoch v0.9.14
   Compiling lscolors v0.13.0
   Compiling crossbeam-channel v0.5.7
   Compiling aho-corasick v0.7.20
   Compiling crossbeam-deque v0.8.3
   Compiling atty v0.2.14
   Compiling clap v3.2.23
   Compiling num_cpus v1.15.0
   Compiling dirs-sys v0.3.7
   Compiling regex v1.7.1
   Compiling directories v4.0.1
   Compiling rayon v1.7.0
   Compiling stfu8 v0.2.6
   Compiling terminal_size v0.2.5
   Compiling thiserror-impl v1.0.39
   Compiling clap_mangen v0.1.11
   Compiling clap_complete v3.2.5
   Compiling du-dust v0.8.5 (/home/olej/2023/Rust/dust)
   Compiling sysinfo v0.27.8
   Compiling toml v0.5.11
   Compiling config-file v0.2.3
    Finished release [optimized] target(s) in 1m 06s

real	1m6,930s
user	2m50,636s
sys	0m11,891s
Не "Бог весть что", но сборки 1m6,930s

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 17 апр 2023, 19:37

Olej писал(а):
17 апр 2023, 19:29
Сборка всех проектов - однотипная

Код: Выделить всё

olej@R420:~/2023/Rust/dust$ ls -l target/release/
итого 2136
drwxrwxr-x 37 olej olej    4096 апр 17 19:24 build
drwxrwxr-x  2 olej olej   20480 апр 17 19:25 deps
-rwxrwxr-x  2 olej olej 2148792 апр 17 19:25 dust
-rw-rw-r--  1 olej olej     574 апр 17 19:25 dust.d
drwxrwxr-x  2 olej olej    4096 апр 17 19:24 examples
drwxrwxr-x  2 olej olej    4096 апр 17 19:24 incremental
...
Ну и вот так - со всеми проектами описанными в статье... ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 13 май 2023, 20:39

Olej писал(а):
27 окт 2022, 20:59
Но у меня Rust уже установлен, 4 года назад, и его следует просто обновить:
Свежее обновление сегодня:

Код: Выделить всё

olej@R420:~$ cd ~/.cargo/bin

Код: Выделить всё

olej@R420:~/.cargo/bin$ rustc --version
rustc 1.64.0 (a55dd71d5 2022-09-19)

Код: Выделить всё

olej@R420:~/.cargo/bin$ cargo --version
cargo 1.64.0 (387270bc7 2022-09-16)

Код: Выделить всё

olej@R420:~/.cargo/bin$ time rustup update stable
info: syncing channel updates for 'stable-x86_64-unknown-linux-gnu'
warning: Signature verification failed for 'https://static.rust-lang.org/dist/channel-rust-stable.toml'
info: latest update on 2023-04-20, rust version 1.69.0 (84c898d65 2023-04-16)
info: downloading component 'cargo'
  6.1 MiB /   6.1 MiB (100 %)   1.7 MiB/s in  3s ETA:  0s
info: downloading component 'clippy'
  2.2 MiB /   2.2 MiB (100 %)   1.5 MiB/s in  1s ETA:  0s
info: downloading component 'rust-docs'
 13.4 MiB /  13.4 MiB (100 %)   1.7 MiB/s in  7s ETA:  0s
info: downloading component 'rust-std'
 27.2 MiB /  27.2 MiB (100 %)   3.7 MiB/s in  8s ETA:  0s
info: downloading component 'rustc'
 60.0 MiB /  60.0 MiB (100 %)   3.3 MiB/s in 19s ETA:  0s
info: downloading component 'rustfmt'
info: removing previous version of component 'cargo'
info: removing previous version of component 'clippy'
info: removing previous version of component 'rust-docs'
info: removing previous version of component 'rust-std'
info: removing previous version of component 'rustc'
info: removing previous version of component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
 13.4 MiB /  13.4 MiB (100 %)   5.3 MiB/s in  2s ETA:  0s
info: installing component 'rust-std'
 27.2 MiB /  27.2 MiB (100 %)   9.6 MiB/s in  2s ETA:  0s
info: installing component 'rustc'
 60.0 MiB /  60.0 MiB (100 %)  11.1 MiB/s in  5s ETA:  0s
info: installing component 'rustfmt'

  stable-x86_64-unknown-linux-gnu updated - rustc 1.69.0 (84c898d65 2023-04-16) (from rustc 1.64.0 (a55dd71d5 2022-09-19))

info: checking for self-updates
info: downloading self-update

real	1m3,882s
user	0m15,566s
sys	0m7,929s

Код: Выделить всё

olej@R420:~/.cargo/bin$ rustc --version
rustc 1.69.0 (84c898d65 2023-04-16)

Код: Выделить всё

olej@R420:~/.cargo/bin$ cargo --version
cargo 1.69.0 (6e9a83356 2023-04-12)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Rust: новый подход к снаряду...

Непрочитанное сообщение Olej » 21 май 2023, 19:31

Показательно ... насколько на практике, по частоте использования, Rust выбирается авторами новых, "свежих" стартапов ... особенно в области сетевых приложений:
peers_updater - обновление списка пиров для сети Yggdrasil
альтернативный DNS Alfis
майнинг IPv6 для сети Yggdrasil

Ответить

Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей