公式
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/
Rust part16
■ このスレッドは過去ログ倉庫に格納されています
2022/06/27(月) 08:17:03.45ID:gDlfKP6u
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/
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/
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/
・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は違和感ない
もともとはサブコマンドのないシェルスクリプトでrustをupdateするからrustup
元の意味からするとrustup updateは重複表現なんだけど
rustupを動詞として捉えずツール名の名詞として捉えればrustup updateは違和感ない
2022/06/27(月) 12:15:14.52ID:BV1DTZv2
rustupにサブコマンドがない時代なんてあったっけ?
rustupの前身のmultirustの頃からupdateサブコマンドはあったような
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)をしてた
コード的には主に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()可能
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
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
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.
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++と評価されたことも大きい
新たに増えていくデバドラなどから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状態)
そして局所的に閉じ込めた部分の健全性を人間が確保すればプログラム全体の健全性がコンパイラにより保証されること
Rustのメリットはunsafe部分を局所的に閉じ込めることができること (他言語は全てがunsafe状態)
そして局所的に閉じ込めた部分の健全性を人間が確保すればプログラム全体の健全性がコンパイラにより保証されること
2022/06/28(火) 23:19:05.36ID:9UGNj1/z
C だとどこが「安全ではない」のかわからん。
unsafe がはっきりと切り離せる分だけ多少はマシ。
unsafe がはっきりと切り離せる分だけ多少はマシ。
25デフォルトの名無しさん
2022/06/28(火) 23:21:02.37ID:UTlbkk5U >>18
おい荒らすな
おい荒らすな
2022/06/28(火) 23:53:24.19ID:EAIC//mO
2022/06/28(火) 23:54:54.04ID:GLoxI7Da
Cたけでなくほとんとのプログラミング言語がデータ競合を見過ごす、あるいは、対応しても実行時にようやく気付いてエラー
Rustのようにコンパイル時エラーとしてくれるのはレア
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本体もそうなるんじゃないの?
Rust本体もそうなるんじゃないの?
2022/06/29(水) 09:29:30.30ID:MBU9aINq
>>29
何と戦ってるの?
何と戦ってるの?
2022/06/29(水) 09:48:50.80ID:0DT3duzl
mallocに失敗してパニックするかどうかは最終的にどうやって切り替える仕様になるわけ?
Cargo.tomlに書くとか?
Cargo.tomlに書くとか?
2022/06/29(水) 10:00:12.87ID:RxSbHfnw
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()を使ってアロケーション時のエラーを得ることも可能
この理解でよい?
一つは昔からの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
2022/06/29(水) 13:45:27.71ID:o1jl8+0D
2022/06/29(水) 14:16:46.78ID:XdEhzXWC
文脈考えなよ
2022/06/29(水) 18:28:59.03ID:wO7vqP7J
2022/06/29(水) 19:04:20.88ID:XnJfgfHX
勝ち負け...?
2022/06/29(水) 19:27:35.51ID:IsSV4hIQ
いずれにせよ
ベアメタルなどの組み込みやOS開発向けがほとんどの用途
それ以外の影響なし普通の人々にとっては今まで通り
ベアメタルなどの組み込みやOS開発向けがほとんどの用途
それ以外の影響なし普通の人々にとっては今まで通り
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 映画史上もっとも“スカッとする”結末の作品5選 [muffin★]
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
- ワイ刀オタ、欲しい刀が中々ネットで見つからず咽び泣く
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【訃報】日経平均先物逝く、円安株安債券安 [943688309]
- 2045年からきたけど質問ある?
- 【悲報】立憲岡田「間違った答弁をした高市総理に問題がある」→愛国者ブチギレ炎上 [834922174]
