- 1 名前:デフォルトの名無しさん [2023/08/15(火) 22:24:39.45 ID:xzxy4cgp.net]
- 公式
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 part20 https://mevius.2ch.net/test/read.cgi/tech/1677771928/ ワッチョイスレ プログラミング言語 Rust 4【ワッチョイ】 https://mevius.2ch.net/test/read.cgi/tech/1514107621/
- 44 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 09:29:50.39 ID:ud/hz0aH.net]
- let hoge = "hoge".to_string();
let v = hoge.as_bytes().to_vec(); // ← ここでデータのコピーは発生しますか?
- 45 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 09:40:59.22 ID:ud/hz0aH.net]
- あー
let v = hoge.into_bytes(); // これか
- 46 名前:デフォルトの名無しさん [2023/08/29(火) 10:07:33.54 ID:ud/hz0aH.net]
- let v = hoge.as_bytes().into(); // これも等価なんか?
- 47 名前:デフォルトの名無しさん [2023/08/29(火) 10:08:22.27 ID:ud/hz0aH.net]
- >>43 と >>45 が等価で
>>44 だけ違うんか?
- 48 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 10:28:52.72 ID:hbocgPIY.net]
- >>43
コピーを発生せずに別の型へ変換するには「消費してxxxへ変換」(into_xxx)するしかないため元が所有権を持たなければならない つまり単なるスライス参照&[T]をto_vec()するのはコピーが発生する 一方で所有権を持つスライスBox<[T]>ならばinto_vec()でコピーを発生させずにVecにできる このto_xxxとinto_xxxに注意 >>44 互いに消費してコピーを発生せずに行き来できる let vec = string.into_bytes(); let string = String::from_utf8(vec).unwrap(); 前者は特にVec<u8>になるためinto_vecではなくinto_bytesと名付けられている 後者はutf8保証チェックが入るためResultが返る その保証を人が与えるならチェックを省略できる let string = unsafe { String::from_utf8_unchecked(vec) };
- 49 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 11:53:16.22 ID:j8lLGaij.net]
- >>46
リファレンス見ればすぐわかるよ もし見方や調べ方がわからないならそれを質問するといい
- 50 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 14:58:40.58 ID:0ZJbGVqi.net]
- >>42
VSCodeの邪魔な機能で最初に思い浮かぶのはinlay hintsだな [File > Preferences > Settings]の[Editor › Inlay Hints: Enabled]を offかoffUnlessPressedに変えると消える offUnlessPressedだとCtrl + Altを押してる間だけ表示される
- 51 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 11:49:10.17 ID:2xM9XyZu.net]
- unsafeを使ったコードで
有効な参照ではないことを確認する方法はありますか?
- 52 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 15:30:33.41 ID:OpkUn9pD.net]
- miriやaddress sanitizerやloomのようなツールとテストの組み合わせで検知するくらいじゃないかな
もちろん100%の検知は不可能
- 53 名前:デフォルトの名無しさん [2023/08/30(水) 15:37:47.00 ID:jEaVNaFL.net]
- 日本人は100%とか完璧とか絶対とか求めるの好きだよね。
やる側が志すのはいいんだけど、たいていはやらない側が求めてくる。
- 54 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 17:42:42.30 ID:Pm5h7iVu.net]
- そういう理にかなわないことをしているから原発がぶっ飛ぶんやで
- 55 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 17:57:48.34 ID:DO1AbTsl.net]
- address sanitizerじゃなくてmemory sanitizerだった
- 56 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 20:21:44.39 ID:y+HDByBG.net]
- 無効な参照は即UBじゃなかったけ
なので正しく書かれたRustプログラムの参照はすべて有効
- 57 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 21:05:03.06 ID:7wIq4Piv.net]
- 正しく書かれてるかどうかを確かめる方法を聞いてるんだろ
- 58 名前:デフォルトの名無しさん [2023/08/30(水) 22:02:55.54 ID:zbgAoZ7n.net]
- rustでdll造ってCから使うとき
rust側で勝手に捨てられるのは困るな
- 59 名前:デフォルトの名無しさん mailto:sage [2023/08/30(水) 22:17:03.68 ID:kn7H0YN4.net]
- そのためにforgetとかleakみたいな謎関数がある
存在は知ってるけどまだ使う機会に恵まれない
- 60 名前:デフォルトの名無しさん mailto:sage [2023/08/31(木) 00:43:59.43 ID:gbA1Jwq2.net]
- Cに所有権ごと渡すなら使うのはinto_rawかfrom_rawじゃね
- 61 名前:デフォルトの名無しさん [2023/08/31(木) 11:31:08.47 ID:qE8kvwKZ.net]
- Rustしばらく使ってるとC/C++描けなくなってくる
- 62 名前:デフォルトの名無しさん mailto:sage [2023/09/01(金) 16:56:03.45 ID:8Q6o7DlX.net]
- sqlite3 用の crate って sqlite3 という名前のがあるけど
rusqlite 使うのとどっちが良い?
- 63 名前:デフォルトの名無しさん [2023/09/02(土) 07:37:58.97 ID:v3EBZAej.net]
- 失礼します
Rustは制約の厳しい言語だから(環境さえ整えば)他言語にトランスパイルしやすい言語 という認識は合ってるでしょうか?
- 64 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 08:12:23.91 ID:bvTG+KAn.net]
- Rustは制約がほとんどなく自由な裁量の大きな言語の一つ
楽に書ける方法の一方で色んな観点を極めることにより書き手によってメモリ利用法や実行速度もピンキリになりうる 色んな環境で動かせることもできてOSの無い環境やstdライブラリを使わない方法など自由が大きい プログラミングパラダイムやスタイル指向の見地からも書き手によって様々な方針をとることができる
- 65 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 08:29:19.99 ID:bvTG+KAn.net]
- ランタイムが必須かどうかも制約として重要になってくる
C/C++やRustはそのような制約がないため他の言語のライブラリ作成にも用いることができる WebAssemblyでの実行についても同様でそのような制約のないRustが有利なため最も使われている
- 66 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 11:00:44.98 ID:YkB2gBn6.net]
- >>62
トランスパイル先言語との機能的互換性の高さやや元言語のコンパイラが単純なほうがトランスパイルしやすいと思う 例えばOwnership/Borrow/Lifetimeあたりのトランスパイルが楽かどうか
- 67 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 11:44:04.91 ID:g76m2OPt.net]
- >>65
壮大な勘違いしてるな 実行時に所有権やライフタイムは一切出て来ないぞ
- 68 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 11:48:36.47 ID:l2r0UsPx.net]
- >>66
壮大な勘違いしてるな トランスパイル時は実行時ではないぞ
- 69 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 11:50:40.77 ID:l2r0UsPx.net]
- 一口にトランスパイルといっても、元言語にあった属性をどこまで先言語に引き継ぐかは目的に応じた取捨選択がなされるものです
前例がないので>>62に対する答えは「未知数」としか言えないですね あるいは言語自体に「トランスパイルのしやすさ」という属性があるとすれば、それは「言語自体がトランスパイルされることを前提として設計されているか」と同義でしょう その側面から言えば答えは「いいえ」です
- 70 名前:デフォルトの名無しさん [2023/09/02(土) 12:05:15.52 ID:f2x52juV.net]
- ライフタイムは妥当かどうかの静的なチェックに使われるもの
トランスパイル先に持ち込まれることはない
- 71 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:06:33.37 ID:euHMK3ab.net]
- 短絡思考 + 自己弁護 = 複オジ
- 72 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 13:21:18.64 ID:gZ7bGKIm.net]
- トランスパイルというとTypeScript→JavaScriptみたいにシンタックスをほぼ保ったまま変換することを意図してる?
それともRustで書いたコードをトランスパイル先のランタイムなり処理系なりで動かせれば良い? 後者ならトランスパイル先言語でWASMランタイム用意すればRustで書いたコードは動かせるよね
- 73 名前:デフォルトの名無しさん [2023/09/02(土) 14:30:38.26 ID:mCX3wjBN.net]
- NimはCにトランスパイルされる
- 74 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 14:59:18.30 ID:dPTTZbJb.net]
- コンパイルする話じゃなくトランスパイルする話をしてるのにその区別すらできないオジ
- 75 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 15:01:52.18 ID:Ng1Dtdjk.net]
- 一般にトランスパイルは同程度に高級な言語の間で
(なるべく)変換後の言語として自然な形で変換するものを言う。 コードジェネレータ、または実行エンジンとして他言語を 経由するものは含んだり含まなかったりするけど 表面上は同じことをやってるので境界が曖昧なんだよ。
- 76 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 16:08:00.76 ID:LNeShMZN.net]
- 境界があいまいだからRustコードからWASMバイナリを生成することをトランスパイルと呼んでもおかしくないと?
- 77 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 16:25:56.23 ID:Ng1Dtdjk.net]
- >>75
そう呼んで欲しくはないが呼んでるかもしれないという想定で すり合わせるプロセスは必要かもしれない。
- 78 名前:デフォルトの名無しさん [2023/09/02(土) 16:37:50.73 ID:aKZIxXWD.net]
- >>65 がトランスパイル先にまでOwnership/Borrow/Lifetimeあたりの機能あったほうが良さそうなこと匂わすトンチンカンなこと書いてるからだろ
- 79 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 17:46:31.63 ID:3Onl8i9L.net]
- >>77
そんな頓珍漢な勘違いをするのはおまえだけだろw
- 80 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 18:52:34.01 ID:l2r0UsPx.net]
- どうせ>>62も複おじなんだろうね
なぜRustからトランスパイルしようなどと思ったのか? その動機が出ないならこの話は終わりです
- 81 名前:デフォルトの名無しさん [2023/09/02(土) 19:16:20.22 ID:v3EBZAej.net]
- >>62です。ぼんやりとした質問ですみませんでした
例えばRustが読めない人向けにPython等に変換してPython読める人ならなんとか読めるものに変換できないかなという想定でした。 あとはLLVM以外の環境で動かしたいとか。それなら確かにWASMで良かったみたいですね。 Rustは型が厳格とかデフォでimmutableだったりムーブだったり制約が強いイメージでしたが前提からして間違ってたみたいですね 皆さま事細かにありがとうございました
- 82 名前:デフォルトの名無しさん [2023/09/02(土) 19:32:06.11 ID:aKZIxXWD.net]
- だから言っただろうがよ
- 83 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 19:33:02.08 ID:EvLWL1zC.net]
- これは違うな
疑って失礼しました
- 84 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 19:34:44.69 ID:GzMi3EqG.net]
- >>67
お前が勘違いしてんだろガイジ 実行時に所有権やライフタイムは出てこないからこそトランスパイル先の言語にもこれらの機能が言語機能として備える必要がないわけでこのスレでお前だけが1人だけ勘違いしている 頭悪そう
- 85 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 19:51:23.24 ID:Wl+8+V5g.net]
- おじ、キレた!!
- 86 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 20:07:34.22 ID:x+ZOYO9b.net]
- 複数ID全員おじとか糖質患者やろ
お前のたった1人だけの発言の方がすべておじに似つかわしいんやけど自覚できない?
- 87 名前:デフォルトの名無しさん [2023/09/02(土) 20:45:16.67 ID:f2x52juV.net]
- おじ使いはいつも病気
- 88 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 23:40:40.30 ID:lMQqG2Zb.net]
- 的外れなレス(>>63-64)からの
恥ずかしい壮大な勘違い(>>66) そしてなぜかドヤる(>>81) 控えめに言って頭オカシイ さすが複オジ
- 89 名前:デフォルトの名無しさん mailto:sage [2023/09/02(土) 23:56:54.98 ID:v0MnUUsV.net]
- オジオジ言ってる人は書き込みに中身がなくて全方位叩きだからスレ荒しが目的なのかな
反応せず無視するのがいいんだろうけど反応しちゃった失礼
- 90 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:03:56.01 ID:cm8T2pY+.net]
- どうでもいいし面倒だしもうここ潰してワッチョイありスレに一本化してほしいんだけど
- 91 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:09:50.96 ID:HRiHoELW.net]
- 「自演認定は頭おかしい」論法
「おじ連呼厨」の強調 いつものやつですね 自演認定糖質論法は久しぶりに聞いた気がする
- 92 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:16:07.67 ID:HRiHoELW.net]
- ID:bvTG+KAn
ID:g76m2OPt ID:f2x52juV ID:GzMi3EqG ID:x+ZOYO9b ID:v0MnUUsV
- 93 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:20:28.54 ID:cZTMAPOv.net]
- 議論でバトルが盛り上がるのは歓迎
オジおじ連投がいる時は議論がなく荒れるだけでつまらん
- 94 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:35:38.11 ID:HRiHoELW.net]
- 歓迎するわけねーだろアホか
- 95 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:38:35.94 ID:cCJ59BhE.net]
- まともな議論が成り立たない原因は複オジだからね
まともな議論ができそうなのはどう見ても>>65や>>68のほう >>91にまとめられてるレスを書いてるようなやつが議論は歓迎とか笑わせるな
- 96 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:45:48.36 ID:HRiHoELW.net]
- 既視感の正体
https://mevius.5ch.net/test/read.cgi/tech/1673926892/745 https://mevius.5ch.net/test/read.cgi/tech/1652347700/468
- 97 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 00:53:25.84 ID:roP/qgKi.net]
- >>61
亀レスだが特に理由がないならrusqliteで 今のところはこれがデファクト
- 98 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 01:20:25.77 ID:YZAPuv0W.net]
- 気に食わない意見があるけど反論できないで次々とおじさん認定して叩くだけのゲスがいるな
libsqlite3の上に構築したRusqliteでもいいが Rustで構築したSQLxがSQLiteもサポートするようになり出来が良いので急上昇で逆転する見込み
- 99 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 01:41:47.18 ID:mceEf04V.net]
- sqlxのsqliteドライバもlibsqlite3の上に構築されてるぞ
SQLiteはCのAPIしか提供してないんだから他のものを使う理由がない
- 100 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 07:28:12.23 ID:x92ht6sx.net]
- また知ったかぶりして恥かいてるww
- 101 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 08:37:05.08 ID:WZFIWsZX.net]
- sqlx以外はasync/await使えない?
- 102 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 13:35:31.95 ID:mxOeoCcq.net]
- 自分でspawn_blockingすればいい
- 103 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 13:45:08.16 ID:yQjRA1Qa.net]
- 安定感や性能に差があるのでsqlite限定ならFirefoxでも使ってるrusqliteがベター
- 104 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 13:48:17.25 ID:jFAGdbdC.net]
- ■購入目的(達成されました)
・Rustで動くプログラムの写経 ・映像表現的な出力結果はモチベーションを維持できる気がした ・RustについてはWeb上に素晴らしいテキストがたくさんあるので簡単な実践的なプログラムを読みたい ■自分のレベル 私は数カ月前にRustを勉強し始めました。 これまで高校でc、Javaの基礎、大学でc++基礎、ObjectiveC、社会人になってPythonやc#と触れてきました。たくさん触れてきていますが結局自分が作りたい少し大きい物をプログラミングで何かを作りきるということをしてきませんでした。いつもチュートリアルで終わりです。永遠に世界に挨拶でもしてろと言われそうなタイプです。 ここ数年で映像制作から転職してインフラエンジニア関係に勤めています。 ネットワークやサーバ周りの知識に加えて一つ言語を修めたいと思いRustをはじめました。
- 105 名前:デフォルトの名無しさん mailto:sage [2023/09/03(日) 23:37:22.86 ID:IkMULQX5.net]
- >>101
spawn_blockingは別OSスレッドを立ててそこで実行するだけだから根本的な解決にならない
- 106 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 01:10:37.74 ID:Ev35rGw5.net]
- >>104
別OSスレッドを立ててそこで実行する以外の解決方法はないよ
- 107 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 02:53:02.64 ID:IXHvJiGY.net]
- 君たちは何を問題と定義しているのか
- 108 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 06:58:20.37 ID:HktKZ7k9.net]
- 昔と違って今はFutureを返すcrateを選べるのだからそこで困ることはないな
糖衣のasync関数を含めてFutureさえ返してくれればいい 自分側はawaitもしくはspawnしてもいいしFutureUnorderedなどで早い者勝ち処理など自由な方針を取れるのだから
- 109 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 09:56:10.80 ID:NSmwDj9w.net]
- >>107
そこで困るとは?
- 110 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 10:17:13.25 ID:/ASAZOX6.net]
- 困ってない人は一生気付かない
これが理想郷
- 111 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 13:01:49.77 ID:9feyj9k/.net]
- いつものストローマンオジ
- 112 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 18:54:13.07 ID:UIsGravq.net]
- 困ったことが無い香具師には何で困るかわからんマジ
- 113 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 20:11:06.59 ID:pWElWRNz.net]
- Futureもawaitして同期のみで困っていない人もいる
Futureすら使わず別スレッドにしちゃって困っていない人もいる ただしベターな方法を知らないために困っていないだけかも知れない 理解した上で選んでいるなら問題ない
- 114 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 20:41:40.87 ID:0aDTsPbB.net]
- >>112
同期APIを非同期で使う話だということを理解してね 何に困ってるのか知らんけど
- 115 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 20:57:24.92 ID:IXHvJiGY.net]
- よく分からんが誰も困っていないらしいのでヨシ!
- 116 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 21:18:46.15 ID:xwtgk4fq.net]
- >>114
俺は誰れが何に困っているのか分からん。 で、>>107は知っているみたいだが >>100は >sqlx以外はasync/await使えない? だから、うん、使えない/いや、xxxも使えるのような回答で良いはずなのに ITドカタ板に多い障碍者は妄想必死して、変なことを言い出すからな。
- 117 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 21:28:55.91 ID:bE42d19a.net]
- >>113
最後の手段spawn_blocking()の話? あれはスレッドを消費しちゃうから例えばクライアント接続が多数来てそれぞれが使うと詰むよ 全部を非同期APIに統一するのがよいね
- 118 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 21:58:02.43 ID:dk25eEP4.net]
- そういう状況なら非同期とか言う前にsqliteやめよう複くん!
- 119 名前:デフォルトの名無しさん [2023/09/04(月) 22:16:10.47 ID:Ts5EvUDj.net]
- SQL関係ない一般的な話がされてると思ってたらSQLにこだわる人もいてよくわからんな
SQLにしてもサーバーに繋ぎにいくなら同期はありえんな
- 120 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 22:29:51.49 ID:fWqFM9pZ.net]
- >>116
スレッド消費せずにSQLiteへの接続を同時にさばくことが出来ないからね 複オジおすすめのsqlxも当然接続ごとに別OSスレッド立ち上げてるからクライアント接続が多数来たら同じように詰むんだよ
- 121 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 22:47:23.47 ID:rfWjSjrk.net]
- 自分が何を知らないか
知ってる人もいれば 知らない人もいる 前者は詐欺師で 後者は複オジである 彼はみんなを騙しているのではなくて 彼はなんでも知っているつもりなのである
- 122 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 23:11:41.51 ID:ueRfdgpS.net]
- RustのSQLデファクトスタンダードのsqlxに対して「複オジおすすめのsqlx」と書いてることから、
複オジ使いはRustを使っていない疑惑が再び出てきた。
- 123 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 23:53:13.41 ID:IXHvJiGY.net]
- >>118の相似形
https://mevius.5ch.net/test/read.cgi/tech/1644596656/919 919: デフォルトの名無しさん sage 2022/05/09(月) 18:50:22.63 ID:rGYbsi5m >>915<
- 124 名前:/a>
>>918 FizzBuzzは単なる話の出発点の例の一つに過ぎなくて既に皆はもっと一般的な話をしているようにみえる 皆もFizzBuzz限定の話なんかに興味はなくて一般的な話に興味があるからではないかな [] - [ここ壊れてます]
- 125 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 23:54:19.18 ID:8cZoZvfB.net]
- またオジが妄想に取り憑かれてるねww
- 126 名前:デフォルトの名無しさん mailto:sage [2023/09/04(月) 23:56:14.30 ID:IXHvJiGY.net]
- 質問者のユースケースが非同期ライブラリを必要としているのか?
そうした前提を確認せずに、非同期対応の一点でライブラリの適・不適を評価しようとすること自体が筋違いなのです
- 127 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 00:09:09.34 ID:XN2NC5/h.net]
- 質問者>>100は
>sqlx以外はasync/await使えない? だから、非同期が前提ではないかい
- 128 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 00:23:36.51 ID:XDjugVOt.net]
- >>125
そっちじゃなくて>>61のこと https://github.com/launchbadge/sqlx/blob/main/sqlx-sqlite/src/connection/worker.rs#L82 なるほどワーカースレッド立てて通信してるだけで別に非同期ファイルI/Oを最大限活用するとかじゃないんだね 確かにこれなら>>119の言う通りブロッキング待ちするものをspawn_blockingしても大した差はなさそうだ
- 129 名前:デフォルトの名無しさん [2023/09/05(火) 04:37:15.62 ID:Zsmh0CoR.net]
- >>117
これこれ
- 130 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 05:16:32.99 ID:Rvonn+YZ.net]
- >>101
各spawn_blocking()毎に専用のネイティブスレッドをブロックする形で用いるため spawn_blockingが同時に大量に発生しないよう留意しなければならない そのため同期ライブラリの利用方法には何らかの制限がついてしまう 非同期ライブラリを利用すればそのような制限はない
- 131 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 12:58:37.11 ID:V9mIkqYx.net]
- sqlx crateでMySQLを使っているがクライアント接続が多数来ても捌けてる
すべて非同期なのでブロックされることも別スレッドで実行されることもない
- 132 名前:デフォルトの名無しさん [2023/09/05(火) 14:15:52.81 ID:SlAKktdo.net]
- node.js推しだった人か
- 133 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 14:17:29.93 ID:6qNvCW8J.net]
- redis-rsよりも良いの?
- 134 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 14:29:07.14 ID:bhQzjDZU.net]
- >>129
そりゃMySQL自体が非同期APIを提供してるからね 同期APIしか提供してないSQLiteとは全く事情が違うんだよ
- 135 名前:デフォルトの名無しさん mailto:sage [2023/09/05(火) 19:14:25.74 ID:dmqj3xko.net]
- かつてデファクトスタンダードだったdiesel crateがsqlx crateにその座を奪われた原因もdieselが非同期APIに対応できなかったせい
- 136 名前:デフォルトの名無しさん [2023/09/05(火) 21:03:20.66 ID:x/2k1tVz.net]
- それもあると思うがたしかディーゼルってActiveRecordの開発者が設計してるんだよね
- 137 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 08:23:13.48 ID:KSPgDJdv.net]
- sqlxのほうがシンプルで使いやすくわかりやすい
- 138 名前:デフォルトの名無しさん [2023/09/06(水) 10:25:26.54 ID:UTcPybKQ.net]
- >>134
ということはライセンスで敬遠されたのか? ここにもOSS問題が
- 139 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 12:30:09.29 ID:12hS6FX4.net]
- >>136
いいかげんコテハン付けろよ。
- 140 名前:デフォルトの名無しさん mailto:sage [2023/09/06(水) 18:07:43.20 ID:bKG9yIlg.net]
- >>136
Apache2.0とMITのデュアル
- 141 名前:宴Cセンスに何の問題が? []
- [ここ壊れてます]
- 142 名前:デフォルトの名無しさん mailto:sage [2023/09/07(木) 13:34:15.26 ID:bUyh+PaU.net]
- GUI作りたいけどよくわからん
今のデファクトはなんや
- 143 名前:デフォルトの名無しさん mailto:sage [2023/09/07(木) 14:34:25.76 ID:BcSMP50e.net]
- デファクト決定戦レスバしかしてねーなこのスレ
- 144 名前:デフォルトの名無しさん mailto:sage [2023/09/07(木) 15:38:29.71 ID:kMvLzM04.net]
- デファクトと言える目安は Recent Downloadsで同カテゴリ2位以下と3倍以上差がついてるかどうか
|

|