Rust part34

1デフォルトの名無しさん
垢版 |
2025/11/27(木) 12:25:23.76ID:4JaxkBD4
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

公式ドキュメント
https://www.rust-lang.org/learn

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

※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 part33
https://mevius.5ch.net/test/read.cgi/tech/1755247770/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2025/11/29(土) 12:14:00.02ID:a750ewmK
>>19
いきなり正解、しかもこの質問色んなスレに一週間前から貼られてる謎の質問
2025/11/29(土) 12:23:47.25ID:T0m5YnVK
何の役にも立たないクソレスとそれを無意味に持ち上げるドクソレスw
2025/11/29(土) 12:41:28.20ID:cYk3tSL4
Windows環境だとMSVC使うのが基本だし、Visual Studio 入れるのが真っ当じゃないの?
エディタは VS Code でいいけど、Rustが依存するツールとして Visual Studio のコンパイラやリンカは要る

VS 2026 にしても問題ないけど、Rustから C/C++のコードを呼ぶ可能性があるなら VS 2022 は残した方が良い
(cmakeクレートがまだVS2022までしか対応してないので)
2025/11/29(土) 12:50:13.56ID:bZRv4lrN
>>17
インストール云々は>>22の書いてる通り

Rustの開発でVSを使うかどうかはどの程度のIDE支援を期待しているか次第
VSはVS CodeほどRust関連のextensionが充実してないので
2025/11/29(土) 12:51:50.05ID:bZRv4lrN
>>22
MSVCターゲット向けに必須なのはリンカとWindows SDKの一部だけでコンパイラは必須じゃなくない?
2025/11/29(土) 13:11:10.98ID:yr60lsGC
WindowsでもMSVCツールチェインより、イメージ的には鈍重そうなMinGWのほうが
実は作られるバイナリの動作速度早いんだっけ?
26デフォルトの名無しさん
垢版 |
2025/11/29(土) 13:35:43.84ID:xVYnmHWx
visual studioてまだ使ってる人おるんかな
c++てmsべったりなのがやっぱキモい
2025/11/29(土) 13:45:33.72ID:3id1C+OK
Rustも似たようなもんだろ
今やMSが一番Rustに金突っ込んでるんじゃないか?
2025/11/29(土) 14:01:56.76ID:S0nqOoRi
C++大好きなビッグテックといえばちょっと前まではMSだったけど、
今ではMSがRustに浮気してGoogleが筆頭になっちゃったね
2025/11/29(土) 14:40:05.38ID:SOcARO8b
allocator_api #32838
のissue見たら、アホみたいに長くて笑った
何をそんなにもめてるのか理解できない
30デフォルトの名無しさん
垢版 |
2025/11/29(土) 15:42:22.34ID:hbxZmChk
初心者:C/C++完全に理解した
中級者:C++チョットワカル
上級者:C++嫌い/Cの方が良い
長老:Rust嫌い
2025/11/29(土) 17:21:50.23ID:FtFLAJH1
MSがRust++を出したら本気出す
2025/11/29(土) 17:30:06.89ID:SOcARO8b
大手でRustを使い始めてないのはAppleぐらいじゃないか?
2025/11/29(土) 17:31:15.18ID:mIVdsrxN
そこはRust#だろ
2025/11/29(土) 17:52:51.69ID:aMf8U9NJ
>>32
AppleもRust使ってるよ
2025/11/29(土) 18:05:29.91ID:SOcARO8b
そこはSwiftだろ
Swiftファンに対する裏切り行為だよ
2025/11/29(土) 18:38:46.56ID:a5a+Znie
706 デフォルトの名無しさん sage 2025/11/17(月) 09:11:50.77 ID:rk5/i4ud
Rustの求人はここが毎月レポート出してるけど会社名とか見ると結構面白い
https://filtra.io/rust/jobs-report/oct-25
今月は防衛産業のAndurilが求人数トップだね

707 デフォルトの名無しさん 2025/11/17(月) 12:12:35.65 ID:AtT4RnQG
そのRust求人出してる企業一覧すごいな
知ってる企業がずらりと並んでいて感動した
Amazon
Microsoft
Cloudflare
xAI
Apple
Dropbox
Nvidia
Google
SpaceX
GitHub
Mozilla
Woven By Toyota
Discord
Disney
Fastly
Mercedes
Bloomberg
Toyota Connected
Figma
Astral
KSAT
LINE
Akamai
Meta
2025/11/29(土) 18:43:49.42ID:SOcARO8b
Adaの後継はRustでウッドボールか
2025/12/01(月) 10:32:10.44ID:g1Gr1S7x
1画面プログラムとか書いてそう
39デフォルトの名無しさん
垢版 |
2025/12/02(火) 18:29:04.48ID:cTmHVcrQ
ビルド遅いのなんとかならんのかな
差分だけでええやろって思ところを毎回フルコンパイルしてるように見えるんだけど
2025/12/02(火) 18:43:32.01ID:O0y+ZlUf
分割方法と変更箇所の関係だろうな
41デフォルトの名無しさん
垢版 |
2025/12/02(火) 19:41:15.00ID:1FGONYAG
sccache入れれば多少は
2025/12/02(火) 20:44:48.17ID:cRRKqG9w
>>41
sccache制限きつくね?
・インクリメンタルコンパイルされたクレートはキャッシュできない
・システムリンカーを呼び出すクレートはキャッシュできない
43デフォルトの名無しさん
垢版 |
2025/12/03(水) 03:34:36.66ID:oIB/w2I6
コンパイルの効率は悪いよ
2025/12/03(水) 03:35:44.18ID:oIB/w2I6
そりゃsccacheの制限じゃなくてRustの制限だからさ
2025/12/03(水) 06:04:17.00ID:WiHtSPxG
言語に関係ない性質
2025/12/03(水) 06:10:38.86ID:IXiFazox
ビルド眺めてたら、最後のリンクするところがクソ遅いな
2025/12/03(水) 11:42:16.90ID:G3Cx7y7o
Rustのcratesって
.a/.soや.lib/.dllをダウンロードする仕組みじゃなくて
毎回ソースが必要なん?
2025/12/03(水) 12:06:05.34ID:kmYeuBOH
基本的には毎回ソース
2025/12/03(水) 13:05:32.27ID:OnxLfrF+
コンパイル済みバイナリをダウンロードできるようにする提案は出ているんだけど実現するかどうかはわからんね。
2025/12/03(水) 14:51:41.63ID:9srsrlEn
公式じゃないけどバイナリダウンロードできるようにしてるところがあったような
2025/12/03(水) 14:59:03.81ID:IXiFazox
cargo-binstall の話?
2025/12/03(水) 18:13:52.75ID:3Hibg4jw
>>51
インデックス登録に申し込みが必要なやつだったからcargo-binstallではないと思うけど
今探しても見つからないからそういうバイナリプロジェクトをインストールするやつと勘違いしたのかもしれん
2025/12/03(水) 18:46:38.64ID:2MnTI9t3
build.rsで生成済みのバイナリ(.rlib)をコピーする形式ならできそうだけど一般公開向けじゃないな
2025/12/03(水) 19:04:15.83ID:8JMYDz0K
>>53
バイナリだけならunsafeでは
55デフォルトの名無しさん
垢版 |
2025/12/03(水) 20:13:27.80ID:+yx3EwOE
アーキテクチャ分バイナリ用意しないとならなくなるから
結構難しそう
2025/12/03(水) 20:22:13.29ID:q2X/X5Gp
そもそもABIがstableじゃないからコンパイラのバージョン毎に配布しないといけないのでは
2025/12/03(水) 22:32:18.40ID:Eh+HvnbR
だっさ
2025/12/03(水) 22:35:08.95ID:CgpHbwYB
いろんな環境でネイティブコンパイルする言語だし労力に見合うリターンが無いよなあ
Windowsのことだけ考えてりゃ後はどうでもいいって時代ならともかく
2025/12/06(土) 00:54:32.45ID:N0FmDDVX
Cloudflareがまたやらかしたな
Rust界の恥晒し
2025/12/06(土) 01:33:54.85ID:YZiuqUxi
【CDN】米クラウドフレアが控訴、海賊版サイトめぐり「5億円の賠償命令」判決に不服
https://asahi.5ch.net/test/read.cgi/newsplus/1764907388/
2025/12/06(土) 02:00:47.66ID:cYcM2N2O
>>59
今回の障害が起きたのはFL1(旧アーキ)のみ

>In our FL1 version of our proxy under certain circumstances, this latter change caused an error state that resulted in 500 HTTP error codes to be served from our network.
>Customers that have their web assets served by our older FL1 proxy AND had the Cloudflare Managed Ruleset deployed were impacted.

Reactのサーバーコンポーネントで見つかったRCE脆弱性対応のため、プロキシのバッファサイズを拡大したことによるバグ顕在化が原因とのこと

>As part of our ongoing work to protect customers using React against a critical vulnerability, CVE-2025-55182, we started rolling out an increase to our buffer size to 1MB, the default limit allowed by Next.js applications. We wanted to make sure as many customers as possible were protected.

>As soon as the change propagated to our network, code execution in our FL1 proxy reached a bug in our rules module which led to the following LUA exception:
>[lua] Failed to run module rulesets callback late_routing: /usr/local/nginx-fl/lua/modules/init.lua:314: attempt to index field 'execute' (a nil value)

Rustで書かれたFL2(新アーキ)で当該エラーは起こっていない

>This is a straightforward error in the code, which had existed undetected for many years. This type of code error is prevented by languages with strong type systems. In our replacement for this code in our new FL2 proxy, which is written in Rust, the error did not occur.

https://blog.cloudflare.com/5-december-2025-outage/
2025/12/06(土) 09:10:08.41ID:WJ0DA+eG
驚いた!Rustすごい!
2025/12/06(土) 12:45:36.37ID:aue+ojQ+
池沼が
2025/12/06(土) 13:07:10.85ID:DTR3/WcD
Cloudflareのコンフィグ管理周りの未熟さも気になるが
それ以上にReact Server Componentは仕組み的に危ない

アプリレイヤーでのリクエストbodyのdeserializationにバグがあると
いきなりfull RCEに直結する仕組みとか怖すぎる

もうちょっと警鐘鳴らしたほうがいいんじゃないだろうか
2025/12/06(土) 13:52:58.00ID:OrfRaHNT
問題は障害がRustに関連したものかどうかではなくて、
Rust採用を大々的にアピールした有力テックの実体がこの程度だったというのを露呈したことだろうな
Rust驚いた勢のプライドを激しく毀損している
66デフォルトの名無しさん
垢版 |
2025/12/06(土) 14:18:25.19ID:ARinuXXT
警鐘鳴らそうとして実証コード描いたらタイーホされる時代
2025/12/06(土) 16:19:08.82ID:LjhUSqqq
自作のソフトウェアのコードRustで書いてんだけどやっぱビルド周りが遅いな
cargo testも実行まで時間かかるし
もっと速くならんかな
68デフォルトの名無しさん
垢版 |
2025/12/06(土) 17:30:19.35ID:EhyTMf4b
なんでcと速度は変わらんのにビルドこんな遅いん?
69デフォルトの名無しさん
垢版 |
2025/12/06(土) 17:43:56.21ID:z6f5ohL1
Rustはメモリリーク含めたリスクポイントをコンパイル時点で教えてくれるだけ。
panicで止めるかどうかは、異常系分類による。
停止させると逆に危険な場合もあるので、自前のexceptアナライザーは必須。
とにかく、関心事の放散が防止できれば、メモリアロケーションもリリースもミスは少なくなる。
SOLID原則に従えば、エレベーターも止まらない。 Rustの出発点が変な気もする。
アーキテクチャー不在がエレベーターを止める。
2025/12/06(土) 23:34:40.22ID:DacREqLg
異常系という言葉を気軽に使う人間は絶対に信用してはいけない
重大障害のもと
2025/12/07(日) 01:56:01.10ID:h2UU4mQ3
どういう理屈で?
当該用途にはなんて言葉を使えばいいの?
2025/12/07(日) 02:51:57.24ID:BRimgs0p
半永久的に動き続けることが求められるサーバーでは異常系終了を用いない
それだけの話だろう
73デフォルトの名無しさん
垢版 |
2025/12/07(日) 03:31:02.57ID:Wacr4v8K
イージーモード追加してくれんかな
trycatchとかgoみたいなエラー処理やりたい
2025/12/07(日) 04:14:18.61ID:YtRaGYdh
Goには例外try/throw/catchもなければResultのような代数的データ型もない
Goは多値でエラーを返してif文でそれがnilかどうかを判別するしかなくイージーモードとはかけ離れている
2025/12/07(日) 04:23:57.95ID:mtIDmBMJ
>>72
システム開発における正常/異常系はテストケースの話じゃないの?
異常終了させないためには、なおのこと異常系は肝要なのでは
2025/12/07(日) 05:47:16.97ID:JhJJ9T6O
unwrap()の是非について焼き寿司氏のblog
https://burntsushi.net/unwrap/

仮にリンターでunwrap()の有無をチェックしても
slice[i] や RefCell、場合によっては算術演算のラップアラウンドでもパニックするよ
という指摘にはなるほどと思った
77デフォルトの名無しさん
垢版 |
2025/12/07(日) 08:25:06.65ID:sR0SS/1I
>>76
Linusの指摘そのままじゃない?
「ランタイムエラーでパニックを発生させるのは根本的に問題があると思っている」

OSみたいなクリティカルな用途だから要求も高いというのはあるけど、Rustはc用途を目指しているんだから、他人のコードであってもpanicを制御できるようにならなきゃ話にならんかと。
2025/12/07(日) 09:49:00.07ID:RKvo/7WP
>>77
std::panic::catch_unwind でキャッチする仕組みはある。
ただ C++ の例外と同じでランタイムサポートの支援で実現するものだから、それより下のレイヤ (OS など) を作ってるときには使いにくいんだよ。
結局のところ OS のレイヤでは C でやってるのと同じやり方でなんとかするしかない。
2025/12/07(日) 11:31:53.26ID:DIZ3oEXF
unwrap()の是非について
https://www.youtube.com/watch?v=TalW9HN9_hI
流行って来た
2025/12/07(日) 13:14:55.38ID:4YzXVeaK
>>77
slice[i]やRefCellや算術演算で発生するpanicと
OOMをResultでハンドリングする機能がなく避けようがなかったpanicとは種類が違う

前者はプログラムコードのバグ
後者はプログラムコードにバグがなくても環境次第で発生してた

Linusが正確に何と言ったかは知らんけど
環境次第で実行時に発生するエラーを
panicとしてしか扱えなかったことを問題視したんじゃないか?
2025/12/07(日) 13:17:17.08ID:4YzXVeaK
>>79
複おじに毛が生えたレベルの説明だが
その毛があるかないかの違いが重要なのかもな
2025/12/08(月) 06:14:53.89ID:78+iHLWM
iced 0.14.0がリリースされて、ついに日本語入力に対応したらしいよ

> Input method support. #2777
2025/12/08(月) 10:36:18.01ID:JY6W1FTm
驚き!
2025/12/08(月) 17:44:28.10ID:WGXF6l1Y
なにicedって
2025/12/08(月) 19:41:58.70ID:IqmmsKhE
UIライブラリや
86デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:17:43.50ID:deXLWuOQ
rustでUIやる意味何?計算量の多いゲームエンジンならわかるけどただのアプリならコンパイルの遅いrustでなんか作りたくねえ
87デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:24:51.74ID:Lsl4QAiK
make world と打ち込んで1週間待ってた頃に比べれば全然余裕
88デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:28:09.51ID:H/C7AGZK
Borlandがturbo rustを出すまで我慢だね
89デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:31:43.36ID:H/C7AGZK
turbo visionのcrateはあるんだw
90デフォルトの名無しさん
垢版 |
2025/12/09(火) 13:34:26.68ID:b/v/GR+5
でもgpuiつかったやつめちゃ速くない?
あとrust analyzerのメモリ爆食いどうにかしてクレメンス
2025/12/09(火) 18:55:52.01ID:r9m3tzex
実際C++BuilderのGUI生産性と、Rustの言語としての速さと頑強さが組み合わされば無敵じゃね?
2025/12/09(火) 20:27:29.76ID:nH0p4cXR
まあエンバカデロはもう革新的な製品作りそうにないし
ヘジルスバーグはRustにあまり興味なさそうだけどね
2025/12/10(水) 05:02:49.84ID:hPMgr9J3
Gemini君に聞いたら、RustはC++のNRVOに相当する最適化をC++よりも広い適用範囲で強力に行います
Destination Passing Style (DPS)
って事らしいけど本当かな?
2025/12/10(水) 09:50:22.74ID:MSOh6BWq
C++ はオブジェクトへのアクセスが自由過ぎてエイリアス解析が大変 (最適化がしんどい) というのは昔から言われてた。
逆に言えば参照 (オブジェクトの依存関係) を完璧に追える Rust ではもっと上手くやれてもおかしくはないと思う。
2025/12/10(水) 10:28:50.81ID:4/EtyeCo
面倒くさい奴だけど付き合うと意外と良い奴
2025/12/10(水) 11:00:48.64ID:WdeXXEzW
>>93
Rustの方針はシンプルかつ効率
関数がレジスタ返しできない大きなサイズのデータを返す時
呼び出し側の関数のスタックフレームに領域を確保
呼び出された関数は最初からその領域にデータを書き込む
もちろんこれらは裏で自動的に行われる
2025/12/10(水) 11:29:15.14ID:+wlu09xM
日本語不自由なやつしかおらんのかいな
2025/12/10(水) 11:31:30.40ID:hPMgr9J3
"Destination Passing Style" で検索するとHaskellの話しか出てこないからハルシネーションか?
99デフォルトの名無しさん
垢版 |
2025/12/10(水) 11:32:51.92ID:v/mPNkvx
RustはUIでも覇権取れる?
2025/12/10(水) 11:48:09.95ID:7/+OAEHE
はい
2025/12/10(水) 12:06:24.08ID:L7XTEUYD
C++でもまじめにstd::move()通してればRust並に最適化できるんじゃね?
move後のアクセスをコンパイラが止めないからミスった時に何が起こるか分からんけど
102デフォルトの名無しさん
垢版 |
2025/12/10(水) 12:18:26.32ID:d+nvH+x7
equi
2025/12/10(水) 12:28:49.76ID:MSOh6BWq
>>101
C++ では返却値は std::move しないのが望ましい場合が多い。
コピー省略できるはずのところでムーブになってしまうことがあるし、ムーブが妥当なときはなにも書いていなくても暗黙にムーブするので書く意味がない。
2025/12/10(水) 12:31:05.43ID:09K8JBzk
Rustは概念的には常に自動的にmoveされる
そして生成コードはレジスタ返しか足りなければRVOに自動的になる
だからC++のような複雑さも面倒臭さもない
2025/12/10(水) 12:44:35.63ID:USY1WYCN
moveが暗黙で実際どうなんかがわからんのはC++の辛いところ
std::moveって明記してるのにコピーした時は、コンパイルエラーにしてくれてればよかったのに
2025/12/10(水) 12:47:17.53ID:hPMgr9J3
>>104
現在のC++が自動でRVOになるのは仕様で保証されてるけど
RustのRVOは仕様じゃなく現状そうなることが多い程度の話では?
2025/12/10(水) 12:58:04.34ID:HmdX4Hif
>>106
むしろRVO以外でどうやって大きなデータを返すんだよ
勝手に裏でヒープでも使うのか?
RVOにならない例を示してみろよ
2025/12/10(水) 13:16:30.40ID:L7XTEUYD
Rustはできるだけインライン展開してreturn自体を減らしてそう
C++とはコンパイルの単位とプロセスが違うからRVOは重視してないかもしれない
2025/12/10(水) 13:57:35.08ID:eneesrJf
>>107
んな大袈裟な話じゃないし、ボトルネックになってない限り実際にRVOされてるかどうかまで気にする人は少ない
コピーのコストが大きな問題になるようなクソでかい構造体なんて実際問題として滅多にないからね
コンテナは基本的に中でヒープ使ってるってのはさすがに知ってるよな?
2025/12/10(水) 16:52:00.70ID:jR2AbXeD
non-goalの余白に無限の願望を託す人
2025/12/10(水) 17:49:43.54ID:HmdX4Hif
>>109
関数からデータを返すだけでヒープを使うのは愚かなことだ
もちろんRustでは戻り型がBox<T>等でなくTそのものならヒープが使われることはないので問題は起きないが
112デフォルトの名無しさん
垢版 |
2025/12/10(水) 19:32:55.35ID:SgLOgf3g
なんでRustはReactに勝てないのか分からんのやが誰か教えてくれ
113デフォルトの名無しさん
垢版 |
2025/12/10(水) 19:56:08.60ID:KLOOllO5
web apiてなんであんなうんこスクリプト言語で書くってことになったんだろう
js自体の機能てほぼないしweb apiいじってるだけだからcでもいいやん
114デフォルトの名無しさん
垢版 |
2025/12/10(水) 19:59:11.30ID:IFiV5w4p
rustでは値渡しはクローンしなければムーブになるだろうな
2025/12/10(水) 20:34:20.54ID:9lNpGh2X
>>114
C++のmoveはコピーコンストラクタの呼び出しを回避するのが目的である一方、
Rustの値渡しは(最適化を無視すれば)常に単なるビット毎のシャローコピーであり、RustにC++のmoveに相当するものは存在しない
Rustのmoveは所有権の移動という文脈上の仮想的な操作でしかなく、代入の実行時挙動は一切変化しない点でC++のmoveとは全く異なる概念
116デフォルトの名無しさん
垢版 |
2025/12/10(水) 20:37:02.84ID:0wVpILab
JavaScriptへトランスパイルできる言語はいくつかある
TypeScriptは言わずもがなDartとKotlinも公式で保守されてる
JavaScriptを書くために必ずしもJavaScriptを使う必要は無い
117デフォルトの名無しさん
垢版 |
2025/12/10(水) 20:41:05.28ID:0wVpILab
>>113
2025/12/10(水) 23:42:16.04ID:kHSO1Qs/
>>112
Webブラウザで動くフレームワークとプログラミング言語を比較するのはヤバい

>>113
JavaScriptは大量のイベントが発生してそれらが非同期に並行して動くけどシングルスレッドだから排他制御は要らないというのが楽に書けるよう設計されてる
Cには無理がある
2025/12/11(木) 00:22:02.01ID:cU6/FCF6
>シングルスレッドだから排他制御は要らない
お前がそう思うんならそうなんだろうお前ん中ではな
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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