Rust part16

■ このスレッドは過去ログ倉庫に格納されています
2022/06/27(月) 08:17:03.45ID:gDlfKP6u
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

日本語の情報
https://rust-jp.rs/

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part15
https://mevius.5ch.net/test/read.cgi/tech/1652347700/
2022/06/27(月) 08:18:31.94ID:gDlfKP6u
Rust The Book (日本語版)
https://doc.rust-jp.rs/book-ja/
Rust edition guide (日本語版)
https://doc.rust-jp.rs/edition-guide/
Rust by example (日本語版)
https://doc.rust-jp.rs/rust-by-example-ja/
Rust cookbook (日本語版)
https://uma0317.github.io/rust-cookbook-ja/
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
Rust nomicon book (日本語版)
https://doc.rust-jp.rs/rust-nomicon-ja/
Rust async book (日本語版)
https://async-book-ja.netlify.app/
Rust WASM book (日本語版)
https://moshg.github.io/rustwasm-book-ja/
Rust embeded book (日本語版)
https://tomoyuki-nakabayashi.github.io/book/
Rust enbeded discovery (日本語版)
https://tomoyuki-nakabayashi.github.io/discovery/
Rust Design Patterns (日本語版)
https://qiita.com/Yappii_111/items/4ccc3a8461cdd4035651
https://qiita.com/Yappii_111/items/654717e6a6a980722189
Rust API guideline (日本語版)
https://sinkuu.github.io/api-guidelines/
2022/06/27(月) 08:20:20.52ID:gDlfKP6u
Rust CLI (Command Line Interface) apps Book
https://rust-cli.github.io/book/
Rust macro Book
https://danielkeep.github.io/tlborm/book/
Rust Future Book
https://cfsamson.github.io/books-futures-explained/
Rust async-std Book
https://book.async.rs/
Rust tokio Book
https://tokio.rs/tokio/tutorial
Rust rustc Book
https://doc.rust-lang.org/rustc/
Rust rustdoc Book
https://doc.rust-lang.org/rustdoc/
Rust rustup Book
https://rust-lang.github.io/rustup/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
Rust unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust Reference
https://doc.rust-lang.org/reference/
Rust Standard Library
https://doc.rust-lang.org/std/
2022/06/27(月) 08:41:06.85ID:iHSX8+Sp
☆WebAssembly(WASM) https://webassembly.org/ https://ja.m.wikipedia.org/wiki/WebAssembly
・Wasmer - The Universal WebAssembly Runtime https://wasmer.io/
-> WASI(WebAssembly System Interface)とEmscriptenに準拠したWASMを実行できるランタイム
・WAPM - WebAssembly Package Manager https://wapm.io/
-> WebAssembly製ツール/ライブラリのパッケージマネージャー
☆Rust
・wasm-pack - your favorite rust -> wasm workflow tool!
https://github.com/rustwasm/wasm-pack
-> WebAssemblyのrustcコンパイルサポート
・Yew - Rust / Wasm framework for building client web apps https://yew.rs/ja/
-> WebAssembly によってマルチスレッドな Web アプリのフロントエンドを作ることができる、モダンな Rust のフレームワーク
☆最近のWebAssemblyのニュース
・Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog より https://www.publickey1.jp/programming-lang/webassembly/
・WebAssembly活用プロジェクト https://madewithwebassembly.com/
・WebAssemblyが気になるので調べてみた - Qiita https://qiita.com/t_katsumura/items/ff379aaaba6931aad1c4
・WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史 https://zenn.dev/koduki/articles/c07db4179bb7b86086a1
・Typescriptの次はRustかもしれない https://zenn.dev/akfm/articles/81713d4c1275ac64a75c
・WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 - ログミーTech https://logmi.jp/tech/articles/324956
・Rust GUI の決定版! Tauri を使ってクロスプラットフォームなデスクトップアプリを作ろう https://zenn.dev/kumassy/books/6e518fe09a86b2
類似スレ
【wasm】ブラウザでC++。Emscriptenを語ろう https://mevius.5ch.net/test/read.cgi/tech/1547549448/
2022/06/27(月) 11:22:00.27ID:KIsxDRwt
前スレにあったrustupのnamingの話だけど
もともとはサブコマンドのないシェルスクリプトでrustをupdateするからrustup

元の意味からするとrustup updateは重複表現なんだけど
rustupを動詞として捉えずツール名の名詞として捉えればrustup updateは違和感ない
2022/06/27(月) 12:15:14.52ID:BV1DTZv2
rustupにサブコマンドがない時代なんてあったっけ?
rustupの前身のmultirustの頃からupdateサブコマンドはあったような
2022/06/27(月) 12:51:56.59ID:lmKSzJyY
updateのupじゃなくてsetupのupじゃないの?
意味的に
2022/06/27(月) 15:34:37.88ID:hKxUT5Kw
>>6
コード的には主にmultirust.sh -> multirust.rs -> rustup.rsなんだけど
名前はrustup.shから引き継がれてる

rustup.shはサブコマンドがなかった
rustup.rsは最初からサブコマンドがあったけどrustupと叩くと今のrustup update相当の処理(update_all_channels)をしてた
2022/06/27(月) 21:57:27.41ID:TFU41qtv
>>987
Stringを自己trimするtrim_in_place()を対称的に短く書くなら

fn trim_in_place(s: &mut String, mut f: impl FnMut(char) -> bool) {
 if let Some(end) = s.rfind(|c| !f(c)) {
  let end = s.ceil_char_boundary(end + 1);
  s.truncate(end);
 }
 if let Some(start) = s.find(|c| !f(c)) {
  s.drain(..start);
 }
}

たとえわずかでも先にendを処理
fは char::is_whitespace など

ただし目的外使用なので長くなるけど置き換え
s.drain(..start);

s.replace_range(..start, "");

こちらはunstableなので長くなるけど置き換え
let end = s.ceil_char_boundary(end + 1);

let end = ((end + 1)..).filter(|&i| s.is_char_boundary(i)).next().unwrap();

ここでendはrfind()で発見済なのでend + 1でunwrap()可能
2022/06/28(火) 06:27:19.73ID:BuyF3SOs
drainとかsinkとかRustはわかりやすい絶妙なネーミングが多いな
2022/06/28(火) 10:43:40.67ID:dP6FappF
WebAssembly に一番適した言語と聞いて来ました
お世話になります
2022/06/28(火) 14:56:42.53ID:5u7YfLuV
>>11
地獄の入口へようこそ
2022/06/28(火) 16:01:32.46ID:/+DN4/Xk
WebAssemblyアプリ開発ではRustが一番人気、用途ではサーバレスが急上昇、ランタイムはWasmtime。The State of WebAssembly 2022 - Publickey

https://www.publickey1.jp/blog/22/webassemblyrustwebassemblywasmtimethe_state_of_webassembly_2022.html
14デフォルトの名無しさん
垢版 |
2022/06/28(火) 16:03:15.75ID:ucMrCo9H
リーナスに認められて良かったな
2022/06/28(火) 16:10:40.89ID:hziWXk46
>>11
この門をくぐる者は一切の希望を捨てよ
2022/06/28(火) 16:21:33.94ID:9UGNj1/z
どの道だって希望なんてないよ。
比較的マシな道を探すだけ
2022/06/28(火) 18:52:34.41ID:EAIC//mO
>>14
やめとけ
Linuxの話題は
あわしろを召喚しちまうぞ
2022/06/28(火) 19:34:49.71ID:e581Ez58
>>17
志賀くんは志賀スレに帰ってください
2022/06/28(火) 20:32:29.27ID:+JjrPLHw
Rust is coming to Linux, says Torvalds
https://cloud7.news/linux/rust-is-coming-to-linux-says-torvalds/

Linus Torvalds also announced some changes he plans to implement into Linux soon.
Most significantly, the open-source programming language, Rust might be included in the next release.
Torvalds stated that Rust will be introduced in a limited way.

Torvalds reminded the attempt to introduce the C++ programming language 25 years ago, which didn’t go as expected.
Compared to C, Rust is better at utilizing and protecting resources.
2022/06/28(火) 20:34:01.06ID:nuii8/Ul
>>19
当面は新規開発のドライバぐらいにしか使わないって話だっけ?
2022/06/28(火) 21:09:24.12ID:20pFpWMa
既に安定して動いているカーネル本体からスタートするのは非効率たから
新たに増えていくデバドラなどからRust導入
そしてRust>C>C++と評価されたことも大きい
2022/06/28(火) 21:14:03.79ID:nuii8/Ul
ドライバだとunsafe祭りになると思うけど、それでもRust活かせるのかな
2022/06/28(火) 21:23:20.31ID:20pFpWMa
Rustは標準ライブラリからしてunsafeだらけ
Rustのメリットはunsafe部分を局所的に閉じ込めることができること (他言語は全てがunsafe状態)
そして局所的に閉じ込めた部分の健全性を人間が確保すればプログラム全体の健全性がコンパイラにより保証されること
2022/06/28(火) 23:19:05.36ID:9UGNj1/z
C だとどこが「安全ではない」のかわからん。
unsafe がはっきりと切り離せる分だけ多少はマシ。
25デフォルトの名無しさん
垢版 |
2022/06/28(火) 23:21:02.37ID:UTlbkk5U
>>18
おい荒らすな
2022/06/28(火) 23:53:24.19ID:EAIC//mO
>>19
やめとけ
Linuxの話題は
あわしろを召喚しちまうぞ
2022/06/28(火) 23:54:54.04ID:GLoxI7Da
Cたけでなくほとんとのプログラミング言語がデータ競合を見過ごす、あるいは、対応しても実行時にようやく気付いてエラー
Rustのようにコンパイル時エラーとしてくれるのはレア
28デフォルトの名無しさん
垢版 |
2022/06/28(火) 23:59:16.02ID:ZKoUX8TI
>>18
あわしろは巣に帰れ。
2022/06/29(水) 04:43:12.90ID:wTdKgESK
結局allocを用意して、Resultを返すような別方言のRustを作っただけじゃん。こんなんでええのかよ、糞言語
2022/06/29(水) 08:04:17.65ID:qEG8UGib
>>29
Rust本体もそうなるんじゃないの?
2022/06/29(水) 09:29:30.30ID:MBU9aINq
>>29
何と戦ってるの?
2022/06/29(水) 09:48:50.80ID:0DT3duzl
mallocに失敗してパニックするかどうかは最終的にどうやって切り替える仕様になるわけ?
Cargo.tomlに書くとか?
2022/06/29(水) 10:00:12.87ID:RxSbHfnw
>>32
全体が一気に切り替わるようなのは多分想定されてない
Resultを返すAPIが追加される感じ
例えばtry_reserveなんかはnightlyでは実装済み
2022/06/29(水) 10:29:37.35ID:o1jl8+0D
話としては二段階あるんだよね

一つは昔からのcore::つまりいわゆるno std::環境
つまりヒープは標準ライブラリとして提供しない
BoxやVecやStringなどのヒープ利用以外はイテレータ含めて全て使える
ヒープは自分で管理するかそういうクレイトを使う

もう一つがstd::からのalloc::の分離
BoxやVecやStringは現在ここにある
Box::try_new()やVec::try_reserve()やString::try_reserve()を使ってアロケーション時のエラーを得ることも可能

この理解でよい?
2022/06/29(水) 12:52:13.13ID:FmyetX4I
>>33
try_reserveは1.57でstabilizeされてる

>>34
core::もalloc::もno_std用


一部コレクションのtry系メソッド以外はどういう形にするか明確な方針は決まってないんじゃないかな
Allocatorトレイトをstabilizeしていく方向は決まってるだろうけど
それを使った上位のAPIがどういう風になるかはわからない
2022/06/29(水) 13:45:27.71ID:o1jl8+0D
>>35
no_std用と言うのは言い過ぎかも
stdにてcoreやallocからuseしているため
2022/06/29(水) 14:16:46.78ID:XdEhzXWC
文脈考えなよ
38デフォルトの名無しさん
垢版 |
2022/06/29(水) 17:53:19.15ID:2Zsw8Y9r
>>30 >>31
顔真っ赤www
2022/06/29(水) 18:28:59.03ID:wO7vqP7J
>>31みたいなレスしちゃった時点で負けなんだが本人が歳だけ食ってメンタル10代のこどおじだから面倒臭いんだよな

>>29
何と戦ってるの?

こんなのよくある問い詰められて二の句が告げなくて『なにが?』とか『なんのこと?』ってはぐらかしてる馬鹿なおっさんそのものなんだが本人気付いてないんだろうなw
2022/06/29(水) 19:04:20.88ID:XnJfgfHX
勝ち負け...?
2022/06/29(水) 19:27:35.51ID:IsSV4hIQ
いずれにせよ
ベアメタルなどの組み込みやOS開発向けがほとんどの用途
それ以外の影響なし普通の人々にとっては今まで通り
2022/06/29(水) 19:34:28.69ID:MBU9aINq
何か知らないが負けということでいいんじゃないかな
2022/06/29(水) 19:39:19.86ID:gsbD96Kr
やべえやつがひとりおります
2022/06/29(水) 19:53:31.44ID:5n1aZHdk
底辺社畜PG向け言語Rust
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況