公式
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/
※C++との比較は専用スレへ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
※次スレは原則>>980が立てること
前スレ
Rust part13
https://mevius.5ch.net/test/read.cgi/tech/1636247099/
探検
Rust part14
■ このスレッドは過去ログ倉庫に格納されています
2022/02/12(土) 01:24:16.59ID:XYE+Rws6
119デフォルトの名無しさん
2022/03/04(金) 18:24:33.40ID:t2OBVARw で、Tauri使ってみた人いるの?
120デフォルトの名無しさん
2022/03/04(金) 18:45:00.29ID:JMvj/uct >>119
その質問の意図は?
その質問の意図は?
121デフォルトの名無しさん
2022/03/04(金) 20:47:25.90ID:4zB49VIz Rustみたいな標準ライブラリが未熟で安全性のかけらもなく、野良のゴミコードばかりの言語ありがたがって使うアホいないよなw
122デフォルトの名無しさん
2022/03/04(金) 20:50:32.75ID:JMvj/uct >>121
Javaもそう言われてたけどなw20年くらい前
Javaもそう言われてたけどなw20年くらい前
123デフォルトの名無しさん
2022/03/04(金) 20:57:54.90ID:4zB49VIz 20年くらい前のJavaはSunの強力な後押しでつよつよだったからなw
ソフト資産も順当に増えたw 安全性はRustの比じゃないし、らいとわんすらんえびうぇあと嘯いてたw
ソフト資産も順当に増えたw 安全性はRustの比じゃないし、らいとわんすらんえびうぇあと嘯いてたw
124デフォルトの名無しさん
2022/03/04(金) 21:04:31.08ID:e8gLPWot125デフォルトの名無しさん
2022/03/04(金) 21:06:23.95ID:4zB49VIz ぬるぽなどの安全性!?ぬるぽなんて安全そのもので代名詞みたいなもんだろうw
126デフォルトの名無しさん
2022/03/04(金) 21:10:22.89ID:4zB49VIz Rustなんて誰も知りませんよ?
https://trends.google.co.jp/trends/explore?date=today%205-y&q=%2Fm%2F0dsbpg6,%2Fm%2F07sbkfb,%2Fm%2F05z1_
https://trends.google.co.jp/trends/explore?date=today%205-y&q=%2Fm%2F0dsbpg6,%2Fm%2F07sbkfb,%2Fm%2F05z1_
127デフォルトの名無しさん
2022/03/04(金) 21:11:31.69ID:4zB49VIz ;消してなw
128デフォルトの名無しさん
2022/03/04(金) 21:15:18.91ID:2tyOtSaX >>124
それ以外にもJavaは実行時エラー(例外)が多すぎですね
Rustはコンパイル時にエラー検出してくれるものが多いだけでなく
実行時エラーとなるものでもResultやOptionで返すからエラー処理忘れが起きないけど
Javaは忘れていても通ってしまい実行時にレア発生するものだと本運用で例外発生で落ちたり
それ以外にもJavaは実行時エラー(例外)が多すぎですね
Rustはコンパイル時にエラー検出してくれるものが多いだけでなく
実行時エラーとなるものでもResultやOptionで返すからエラー処理忘れが起きないけど
Javaは忘れていても通ってしまい実行時にレア発生するものだと本運用で例外発生で落ちたり
129デフォルトの名無しさん
2022/03/04(金) 21:19:19.87ID:bhso8MNW Rustでも雑にunwrap使ったらpanicで死ぬ可能性あるよね
130デフォルトの名無しさん
2022/03/04(金) 21:20:22.36ID:4zB49VIz そんなこと起きないし
Rustみたいに
誰もコーディングできません
聞ける人いません
ライブラリありません
エラーわかりません
とか言われないw
Rustみたいに
誰もコーディングできません
聞ける人いません
ライブラリありません
エラーわかりません
とか言われないw
131デフォルトの名無しさん
2022/03/04(金) 21:24:24.27ID:yoTd6F0f おじさん芸風変えたのか?
132デフォルトの名無しさん
2022/03/04(金) 21:27:15.64ID:t2OBVARw リリース前にunwrap全部消しとかないと叩かれるの?
133デフォルトの名無しさん
2022/03/04(金) 21:33:51.78ID:4zB49VIz どんな言語でもロジックミスでプログラムが終了することはいくらでもあるw
安全というのはそういう事態が起きてもプログラムがsegmentation faultなどで落ちないことw
よりよい実装方法はあるけど、それはそれw
まあリリース後にpanicで終了するのは製品ならやばいw
安全というのはそういう事態が起きてもプログラムがsegmentation faultなどで落ちないことw
よりよい実装方法はあるけど、それはそれw
まあリリース後にpanicで終了するのは製品ならやばいw
134デフォルトの名無しさん
2022/03/04(金) 21:47:04.33ID:2tyOtSaX >>132
可能な限りunwrap()は避けたほうがよいでしょう
もちろん続行不可能なために意図的にpanic終了させたい場合は別です
ロジック的にここでは絶対にNoneやErrが来ないはず!(と思い込んでいる)ケースもありますが
それならばせめてその理由を記述したexpect()を呼ぶように変えることで
発生時対処やコードをレビューする人にも役立つと思います
可能な限りunwrap()は避けたほうがよいでしょう
もちろん続行不可能なために意図的にpanic終了させたい場合は別です
ロジック的にここでは絶対にNoneやErrが来ないはず!(と思い込んでいる)ケースもありますが
それならばせめてその理由を記述したexpect()を呼ぶように変えることで
発生時対処やコードをレビューする人にも役立つと思います
135デフォルトの名無しさん
2022/03/04(金) 21:49:55.68ID:4zB49VIz unwrapなんていくらでもそこら中で使ってるだろw
流石Rust wwww
流石Rust wwww
136デフォルトの名無しさん
2022/03/04(金) 21:57:04.53ID:2tyOtSaX もちろん誰が見ても起きないとわかる自明な場合はunwrap()でいいと思いますよ
自明でない場合はせめてコメントに理由を残すとよいでしょう
自分で書いたコードでも1年後に「ここでunwrap()大丈夫だっけ?」と忘れてることもありうるためw
自明でない場合はせめてコメントに理由を残すとよいでしょう
自分で書いたコードでも1年後に「ここでunwrap()大丈夫だっけ?」と忘れてることもありうるためw
137デフォルトの名無しさん
2022/03/04(金) 22:05:29.47ID:4zB49VIz そんなのは誰がどんな理由でどう書いたってその人の自由w
他の人がどう思うかを気にするなら、べき論くらいは知っててもいい程度の話w
他の人がどう思うかを気にするなら、べき論くらいは知っててもいい程度の話w
138デフォルトの名無しさん
2022/03/04(金) 22:05:29.91ID:yoTd6F0f unwrapはunwrapで死ぬけどヌルポはしばらく動いてから死ぬという地味な怖さがある
139デフォルトの名無しさん
2022/03/04(金) 22:07:00.39ID:4zB49VIz RustがJavaやC#より安全なわけないだろw 頭悪すぎw
140デフォルトの名無しさん
2022/03/04(金) 22:14:27.75ID:e8gLPWot141デフォルトの名無しさん
2022/03/04(金) 22:51:40.80ID:4zB49VIz unsafeこんもりのRustが安全なわけないだろw
142デフォルトの名無しさん
2022/03/04(金) 23:07:12.52ID:oa4nu3Sp 理由を書かずに同じ言葉繰り返すだけのおじさん
143デフォルトの名無しさん
2022/03/04(金) 23:14:03.66ID:rsYyHWe+ もしかして手元のCコードをRustにベタ移植してる?
コンパイル通すためにunsafeこんもりなら納得できるが
コンパイル通すためにunsafeこんもりなら納得できるが
144デフォルトの名無しさん
2022/03/04(金) 23:23:45.83ID:0+y+EQw3 熱烈なJava信者なのかもな
145デフォルトの名無しさん
2022/03/05(土) 00:20:00.76ID:lbLi/sOl まあいうほど安全だったらもっと早く全てrustに置き換わってるわな。
146デフォルトの名無しさん
2022/03/05(土) 00:22:29.41ID:6Mx0EdLs すまん。セグフォする言語使ってる雑魚おる?
147デフォルトの名無しさん
2022/03/05(土) 00:23:59.45ID:AqnMHu7I ああ、Rustっていう言語ねw
https://mevius.5ch.net/test/read.cgi/tech/1638086359/480
https://mevius.5ch.net/test/read.cgi/tech/1638086359/480
148デフォルトの名無しさん
2022/03/05(土) 02:38:11.66ID:S5Q/+OCY 何ヶ月か前にもいたな。Rustのいう安全とは何かを知る気が一切無いまま、安全じゃないって煽ってたやつが
149デフォルトの名無しさん
2022/03/05(土) 02:50:45.20ID:AqnMHu7I Rustはunsafeを隠蔽し、しかも内包する動機を安全の核とする部分に持つ劇的矛盾言語w
それを安全安全高速と謳って騙ってベアメタル領域に行ってみたり、他スレまでしゃしゃり出るうざさw
マジで迷惑w
firefoxだけで使って大人しくしとけw
それを安全安全高速と謳って騙ってベアメタル領域に行ってみたり、他スレまでしゃしゃり出るうざさw
マジで迷惑w
firefoxだけで使って大人しくしとけw
150デフォルトの名無しさん
2022/03/05(土) 03:34:00.88ID:cFQpklvh ネガキャンしようが
ttps://foundation.rust-lang.org/members/
これが現実w
ttps://foundation.rust-lang.org/members/
これが現実w
151デフォルトの名無しさん
2022/03/05(土) 03:55:08.77ID:AqnMHu7I 俺が出したやつじゃんw
あのときも言ったけど、その辺の巨人は必要のあるニッチな領域を持ってるからバックにいるだけw
あのときからマジでRust推しがウザすぎてRust推すのやめたんだよなw
あのときも言ったけど、その辺の巨人は必要のあるニッチな領域を持ってるからバックにいるだけw
あのときからマジでRust推しがウザすぎてRust推すのやめたんだよなw
152デフォルトの名無しさん
2022/03/05(土) 10:45:20.33ID:RFq7TQA4153デフォルトの名無しさん
2022/03/05(土) 10:45:48.31ID:RFq7TQA4 >>119
今日使うわ
今日使うわ
154デフォルトの名無しさん
2022/03/06(日) 00:17:17.68ID:ea3LwkPH tauri触ってみたけどRust⇔JSの値のやりとりはJSON限定なのかな
Responseのbodyにバイナリデータ入れて返す方法を探してるけど
iframe内で送受信するオプションがあるからできないかもしれない
Responseのbodyにバイナリデータ入れて返す方法を探してるけど
iframe内で送受信するオプションがあるからできないかもしれない
155デフォルトの名無しさん
2022/03/06(日) 02:29:18.30ID:m6vdBUAZ base64
156デフォルトの名無しさん
2022/03/06(日) 12:07:19.24ID:ea3LwkPH 154だけどBuilderのregister_uri_scheme_protocolでいけそう
WebViewのIPCをちょっと勘違いしてた
WebViewのIPCをちょっと勘違いしてた
157デフォルトの名無しさん
2022/03/06(日) 12:57:45.63ID:oRBcPyqI 全く使ってないけど結局js使うんならややこしくなるだけだろw
electronでwasm使ってウンウン唸ってる層にしか刺さらないように見えるのに宣伝うるさすぎw
しかもRust推しの数字操作は常にえげつないw
実効果と桁が違う宣伝効果をタイトルに持ってきちゃうw 詐欺かよw
electronでwasm使ってウンウン唸ってる層にしか刺さらないように見えるのに宣伝うるさすぎw
しかもRust推しの数字操作は常にえげつないw
実効果と桁が違う宣伝効果をタイトルに持ってきちゃうw 詐欺かよw
158デフォルトの名無しさん
2022/03/06(日) 13:11:37.97ID:oRBcPyqI js周りで言えばdenoとか最近どうなん?
わざわざ作り直した挙げ句、「全然速くなってませんでした!!!!少し設定とか出来るから許して…てへw」では困るだろw
いろいろ足りない処理もあるし、ベンチ向けに偏りすぎてると思うけど、後発ならjust-jsとか特定用途で高速化・コンパクト化できている
この差は何なんだろう?
わざわざ作り直した挙げ句、「全然速くなってませんでした!!!!少し設定とか出来るから許して…てへw」では困るだろw
いろいろ足りない処理もあるし、ベンチ向けに偏りすぎてると思うけど、後発ならjust-jsとか特定用途で高速化・コンパクト化できている
この差は何なんだろう?
159デフォルトの名無しさん
2022/03/06(日) 14:19:43.76ID:XU+V9ZSH denoってセキュリティ周りをどうにかするのがモチベーションで高速であることは謳ってないのでは
160デフォルトの名無しさん
2022/03/06(日) 14:25:13.83ID:ea3LwkPH >>157
内部処理もUI周りも全部同じ言語で書いた方が楽って層には敬遠されそうだけど
内部処理はRust、UI周りはHTML+JSの方が書きやすいって層には需要があると思う
electronはよく知らないけどWebViewはバイナリにブラウザ埋め込む感じだから
ブラウザ内でバイナリ実行するwasmとはあまり関係ないかも
内部処理もUI周りも全部同じ言語で書いた方が楽って層には敬遠されそうだけど
内部処理はRust、UI周りはHTML+JSの方が書きやすいって層には需要があると思う
electronはよく知らないけどWebViewはバイナリにブラウザ埋め込む感じだから
ブラウザ内でバイナリ実行するwasmとはあまり関係ないかも
161デフォルトの名無しさん
2022/03/06(日) 15:17:04.79ID:oRBcPyqI >>159
作者のモチベーションがどうというより、ユーザー視点だとわざわざ書き直したにしてはパッとしないってこと
しかも書きっぷりまで変わるんではちょっとね
V8の上側にRust入ってるのになぁ〜w
>>160
> 内部処理はRust、UI周りはHTML+JSの方が書きやすいって層
wasm使う層だよねw
> electronはよく知らないけどWebViewはバイナリにブラウザ埋め込む感じだから
> ブラウザ内でバイナリ実行するwasmとはあまり関係ないかも
埋め込むというかバイナリをくっつけるだけでしょw
包含関係が逆なだけで酷似してるし、問題も似たような問題ばかりw
wasmならwebでそのまま動くが、tauriだとplatform限定されてnativeな分Rust側の速度が速いってだけw
作者のモチベーションがどうというより、ユーザー視点だとわざわざ書き直したにしてはパッとしないってこと
しかも書きっぷりまで変わるんではちょっとね
V8の上側にRust入ってるのになぁ〜w
>>160
> 内部処理はRust、UI周りはHTML+JSの方が書きやすいって層
wasm使う層だよねw
> electronはよく知らないけどWebViewはバイナリにブラウザ埋め込む感じだから
> ブラウザ内でバイナリ実行するwasmとはあまり関係ないかも
埋め込むというかバイナリをくっつけるだけでしょw
包含関係が逆なだけで酷似してるし、問題も似たような問題ばかりw
wasmならwebでそのまま動くが、tauriだとplatform限定されてnativeな分Rust側の速度が速いってだけw
162デフォルトの名無しさん
2022/03/06(日) 15:42:49.31ID:yex+Q2w4 Rustでそんな便利な状況になっているのか
tauriというのをちょっと試してみるかな
tauriというのをちょっと試してみるかな
163デフォルトの名無しさん
2022/03/06(日) 16:43:21.41ID:oq6skpEb tauri自体うんぬんじゃなくて、electronクラスのメジャーミドルにまでRustでの書き換えが浸透してきてるってこと
すなわちRustがシステムプログラミングのデファクトスタンダードになったってことを表すエビデンスが1つ増えた
すなわちRustがシステムプログラミングのデファクトスタンダードになったってことを表すエビデンスが1つ増えた
164デフォルトの名無しさん
2022/03/06(日) 16:58:21.68ID:oRBcPyqI 逆だよw
electronはそもそもjsでアプリを書こうというものであって、ごく一部のクソメジャーアプリを除けばjsの範疇を出ないし、クソメジャーアプリはもうそれ自体がプラットフォームと化してるからカウントできないw
C#で書けば楽に何でも書けるのになんでわざわざHTML+JS+Rustを不自由なフレームまで使って書きたがるのか・・・ユーザーは不便、開発者も面倒とメリットなんて全くないのにw
結局ただの自己満足なんだよね
electronはそもそもjsでアプリを書こうというものであって、ごく一部のクソメジャーアプリを除けばjsの範疇を出ないし、クソメジャーアプリはもうそれ自体がプラットフォームと化してるからカウントできないw
C#で書けば楽に何でも書けるのになんでわざわざHTML+JS+Rustを不自由なフレームまで使って書きたがるのか・・・ユーザーは不便、開発者も面倒とメリットなんて全くないのにw
結局ただの自己満足なんだよね
165デフォルトの名無しさん
2022/03/06(日) 17:00:13.90ID:UG2ti1iI C#ってMacとLinuxでまともに動かなくね
166デフォルトの名無しさん
2022/03/06(日) 17:03:12.31ID:oRBcPyqI Macは知らんが、Linuxのどこにそんな事実があるの?
167デフォルトの名無しさん
2022/03/06(日) 17:50:44.16ID:aPFsI6mA ID:oRBcPyqIはあちこちのスレで
的外れなRust叩きをやってるけど
なんなんやろ
的外れなRust叩きをやってるけど
なんなんやろ
168デフォルトの名無しさん
2022/03/06(日) 17:54:28.15ID:xougf8Rz 誰も言及してないC#とか唐突に言い出すあたりでお里が知れる
169デフォルトの名無しさん
2022/03/06(日) 17:56:46.74ID:oRBcPyqI あちこちのスレで長期間スレ違い指摘を無視して嘘八百並べるRust推しがいたからでは?w
170デフォルトの名無しさん
2022/03/06(日) 17:57:08.30ID:p8wz0iuX171デフォルトの名無しさん
2022/03/06(日) 17:57:28.93ID:oRBcPyqI RustのスレでRustの話して文句言われる筋合いはないw
172デフォルトの名無しさん
2022/03/06(日) 17:58:38.02ID:oRBcPyqI その辺の言語は普通にかけるけどなw
Rustが安全とか嘯くアホよりはマシだと思うぞw
Rustが安全とか嘯くアホよりはマシだと思うぞw
173デフォルトの名無しさん
2022/03/06(日) 18:02:20.15ID:p8wz0iuX Rust書けるようになるためにはまずGC言語への依存を捨てろ
自力でメモリ管理できる能力が絶対に必要
スタック、ヒープ、Dropトレイト、所有権、借用ルール、(可変参照と不変参照)、Box、arena、Rc、Cell、RefCell
この辺り曖昧さなく完全に理解してないと書けない言語なの
無能にはかけない言語
自力でメモリ管理できる能力が絶対に必要
スタック、ヒープ、Dropトレイト、所有権、借用ルール、(可変参照と不変参照)、Box、arena、Rc、Cell、RefCell
この辺り曖昧さなく完全に理解してないと書けない言語なの
無能にはかけない言語
174デフォルトの名無しさん
2022/03/06(日) 18:04:33.12ID:oRBcPyqI GC書いたことあるけどw
Rustなんて誰も書ける必要のない言語なだけw
Rustなんて誰も書ける必要のない言語なだけw
175デフォルトの名無しさん
2022/03/06(日) 18:06:38.47ID:p8wz0iuX Rustは悲惨な言語だよ
JS書いてブイブイ言わせてるようなやつが全く赤子みたいになるんだからw
JS書いてブイブイ言わせてるようなやつが全く赤子みたいになるんだからw
176デフォルトの名無しさん
2022/03/06(日) 18:09:37.09ID:MTz7H1nt 変な選民思想が今一番強い言語かもな。
177デフォルトの名無しさん
2022/03/06(日) 18:13:42.56ID:oRBcPyqI Rustは本当に悲惨な言語だよなw
https://github.com/rust-unofficial/too-many-lists
https://github.com/rust-unofficial/too-many-lists
178デフォルトの名無しさん
2022/03/06(日) 18:21:17.44ID:w4QYl2sw このおっさんJSもろくに書けないC#屋だから
179デフォルトの名無しさん
2022/03/06(日) 18:29:58.17ID:oRBcPyqI 別にC#もJavaも・・・ってか大抵のメジャー言語は書けるけどw
180デフォルトの名無しさん
2022/03/06(日) 19:16:52.49ID:p8wz0iuX >>173
追加
Derefトレイト、Copyトレイト、Cloneトレイト
こいつらは必ずしも必要ではないがメモリの使い方の訓練にはなるので触っておくべき
逆にこれらを理解できればRustは書ける
C#おじさんガンガレ
追加
Derefトレイト、Copyトレイト、Cloneトレイト
こいつらは必ずしも必要ではないがメモリの使い方の訓練にはなるので触っておくべき
逆にこれらを理解できればRustは書ける
C#おじさんガンガレ
181デフォルトの名無しさん
2022/03/06(日) 19:19:37.62ID:oRBcPyqI アホだなw 俺はRustを書けないなどと一言も言ってないw
そしてC#おじさんとか意味不明な名前を付けられてる人でもないw
そしてC#おじさんとか意味不明な名前を付けられてる人でもないw
182デフォルトの名無しさん
2022/03/06(日) 19:21:03.95ID:oRBcPyqI 誰も書けるようになる必要のない言語なのは間違いないw
理由は>>177のリンクのとおりw
理由は>>177のリンクのとおりw
183デフォルトの名無しさん
2022/03/06(日) 19:24:14.36ID:oq6skpEb >>181
お願いだからコテハンつけて!
お願いだからコテハンつけて!
184デフォルトの名無しさん
2022/03/06(日) 19:25:09.10ID:oRBcPyqI >>183
お断りする
お断りする
185デフォルトの名無しさん
2022/03/06(日) 19:25:33.99ID:p8wz0iuX >>181
効いてるねえw
効いてるねえw
186デフォルトの名無しさん
2022/03/06(日) 19:27:04.59ID:XU+V9ZSH >>182
rustの代わりになに使えばいいの?
rustの代わりになに使えばいいの?
187デフォルトの名無しさん
2022/03/06(日) 19:29:22.49ID:oRBcPyqI188デフォルトの名無しさん
2022/03/06(日) 19:40:49.28ID:jNuGonTQ お、CommonLispとか書けるんか?
189デフォルトの名無しさん
2022/03/06(日) 19:41:34.72ID:ea3LwkPH Rustもコンプレックスの対象になるんか…
ただのプログラム言語なのに
ただのプログラム言語なのに
190デフォルトの名無しさん
2022/03/06(日) 19:49:25.58ID:oRBcPyqI191デフォルトの名無しさん
2022/03/06(日) 20:00:46.25ID:HQYqkavR >>190
EmacsLispとCommonLispじゃ全然違うぞ
EmacsLispとCommonLispじゃ全然違うぞ
192デフォルトの名無しさん
2022/03/06(日) 20:04:53.65ID:yex+Q2w4 TauriをJavaScriptを一切書かずRustだけで使うのに挑戦し始めました
とりあえず公式に従いcargo利用パターンでやってみる
$ cargo install tauri-cli --locked --version ^1.0.0-rc
これで bin/cargo-tauri がインストールされて cargo tauri XXX が使えるようになった
$ cargo tauri init
これで src-tauri というディレクトリができて tauri.conf.json に指定すればよいのか
どうやらwasmを入れてやればTauri利用でもブラウザ利用でもRustコードだけで済むっぽい
$ rustup target add wasm32-unknown-unknown
$ cargo install trunk
$ cargo install wasm-bindgen-cli
これで bin/trunk などRustでのWASM使用環境が入ったようだ
次にフロントエンド用のディレクトリを作る
$ cargo new --bin frontend
$ cd frontend
ここで index.html を以下のdata-trunkを含む行でcssなど指定して適当に作成
<link data-trunk rel="css" href="/public/main.css"/>
$ trunk build
$ trunk serve
これでサーバーが起動された
まずはブラウザから http://localhost:8080/ により無コードwasm環境動作確認OK
これでようやくTauriに戻って先ほどの tauri.conf.json に今の分を記述
"devPath": "http://localhost:8080",
"beforeDevCommand": "cd frontend && trunk serve",
"beforeBuildCommand": "cd frontend && trunk build",
$ cargo tauri dev
これで無事にTauriのウインドウがついに出てきた!ので無事に初期環境が成功
さてここからRustコードはどのフレームワークで書くのがおすすめ?
とりあえず公式に従いcargo利用パターンでやってみる
$ cargo install tauri-cli --locked --version ^1.0.0-rc
これで bin/cargo-tauri がインストールされて cargo tauri XXX が使えるようになった
$ cargo tauri init
これで src-tauri というディレクトリができて tauri.conf.json に指定すればよいのか
どうやらwasmを入れてやればTauri利用でもブラウザ利用でもRustコードだけで済むっぽい
$ rustup target add wasm32-unknown-unknown
$ cargo install trunk
$ cargo install wasm-bindgen-cli
これで bin/trunk などRustでのWASM使用環境が入ったようだ
次にフロントエンド用のディレクトリを作る
$ cargo new --bin frontend
$ cd frontend
ここで index.html を以下のdata-trunkを含む行でcssなど指定して適当に作成
<link data-trunk rel="css" href="/public/main.css"/>
$ trunk build
$ trunk serve
これでサーバーが起動された
まずはブラウザから http://localhost:8080/ により無コードwasm環境動作確認OK
これでようやくTauriに戻って先ほどの tauri.conf.json に今の分を記述
"devPath": "http://localhost:8080",
"beforeDevCommand": "cd frontend && trunk serve",
"beforeBuildCommand": "cd frontend && trunk build",
$ cargo tauri dev
これで無事にTauriのウインドウがついに出てきた!ので無事に初期環境が成功
さてここからRustコードはどのフレームワークで書くのがおすすめ?
193デフォルトの名無しさん
2022/03/06(日) 20:19:38.65ID:oRBcPyqI194デフォルトの名無しさん
2022/03/06(日) 20:29:23.18ID:oq6skpEb195デフォルトの名無しさん
2022/03/06(日) 20:32:44.98ID:aPFsI6mA この人ぼくはプログラミングにはくわしいんだと
わめくほどボロが色々出て面白いな
わめくほどボロが色々出て面白いな
196デフォルトの名無しさん
2022/03/06(日) 20:39:24.52ID:XU+V9ZSH >>187
あなただったら何を使うの?
あなただったら何を使うの?
197デフォルトの名無しさん
2022/03/06(日) 20:46:19.62ID:rSXv4Rng >>193
EmacsLispはゴミだぞw
EmacsLispはゴミだぞw
198デフォルトの名無しさん
2022/03/06(日) 20:53:26.84ID:yex+Q2w4 >>192の続き
とりあえずRust製フロントエンドフレームワークYewを使用
先程のfrontendディレクトリで
[dependencies]
yew = "0.19.3"
を Cargo.toml に追加して src/main.rs に以下のハローワールド記述
use yew::prelude::*;
fn main() {
yew::start_app::<App>();
}
#[function_component(App)]
pub fn app() -> Html {
html! {
<div>
<h2 class={"heading"}>{"ハローワールド!"}</h2>
</div>
}
}
そしてTauri側で再び
$ cargo tauri dev
無事にTauriでハローワールド!が出ました
同様にブラウザから http://localhost:8080/ でも同内容が表示された
つまりRustコードを書くだけで『デスクトップアプリ』と『ウェブアプリ』が同時に出来上がる?
もうじきTauriがモバイル対応するそうなので『モバイルアプリ』にもなるということ?
とりあえずRust製フロントエンドフレームワークYewを使用
先程のfrontendディレクトリで
[dependencies]
yew = "0.19.3"
を Cargo.toml に追加して src/main.rs に以下のハローワールド記述
use yew::prelude::*;
fn main() {
yew::start_app::<App>();
}
#[function_component(App)]
pub fn app() -> Html {
html! {
<div>
<h2 class={"heading"}>{"ハローワールド!"}</h2>
</div>
}
}
そしてTauri側で再び
$ cargo tauri dev
無事にTauriでハローワールド!が出ました
同様にブラウザから http://localhost:8080/ でも同内容が表示された
つまりRustコードを書くだけで『デスクトップアプリ』と『ウェブアプリ』が同時に出来上がる?
もうじきTauriがモバイル対応するそうなので『モバイルアプリ』にもなるということ?
199デフォルトの名無しさん
2022/03/06(日) 21:14:59.14ID:ZzsGBkm4 PWAで作った方がいいんじゃないの?
200デフォルトの名無しさん
2022/03/06(日) 21:28:17.34ID:XkcOqYxe yewってマクロの使いこなしが変態的だな・・・
201デフォルトの名無しさん
2022/03/06(日) 21:30:01.06ID:XkcOqYxe よく見るとElmっぽくておもしろい
202デフォルトの名無しさん
2022/03/06(日) 22:56:07.92ID:T8opxkUl Yewはマジでelmっぽくて嫌いじゃないが、htmlの部分が一切補完効かないの結構キツい
203デフォルトの名無しさん
2022/03/06(日) 23:07:04.35ID:ABwQh1O6 >>199
もちろんTauriと関係なくTauriを使わずとも
YewやWozなどのRustによるfrontend frameworkを使って
RustだけでPWAを作ってWebブラウザ上で動かすことが出来る
Tauriはそれに加えてデスクトップで動かすことが出来る
つまりWebによる制限を超えた動作も可能でデスクトップアプリとなる
もちろんTauriと関係なくTauriを使わずとも
YewやWozなどのRustによるfrontend frameworkを使って
RustだけでPWAを作ってWebブラウザ上で動かすことが出来る
Tauriはそれに加えてデスクトップで動かすことが出来る
つまりWebによる制限を超えた動作も可能でデスクトップアプリとなる
204デフォルトの名無しさん
2022/03/06(日) 23:07:59.88ID:ZzsGBkm4 Elmっぽいのが好きならElmで書けよ
変数がmutableなRustにはTEAは向いてないだろ
変数がmutableなRustにはTEAは向いてないだろ
205デフォルトの名無しさん
2022/03/06(日) 23:10:08.35ID:ABwQh1O6206デフォルトの名無しさん
2022/03/06(日) 23:16:26.97ID:T8opxkUl207デフォルトの名無しさん
2022/03/07(月) 00:40:12.93ID:2Lq6XwwP208デフォルトの名無しさん
2022/03/07(月) 00:48:58.71ID:otYxLRpr >>207
Allegro CL。このくらいは知ってるよね?
Allegro CL。このくらいは知ってるよね?
209デフォルトの名無しさん
2022/03/07(月) 01:00:34.40ID:2Lq6XwwP210デフォルトの名無しさん
2022/03/07(月) 01:07:35.15ID:OgyEhepF 喋れば喋るほど恥を晒してくスタイルか
211デフォルトの名無しさん
2022/03/07(月) 01:08:34.45ID:2Lq6XwwP >>210
何か刺さってしまいましたか?
何か刺さってしまいましたか?
212デフォルトの名無しさん
2022/03/07(月) 01:19:37.15ID:txOk/EL1 >>207
ウェブのフロントエンドかデスクトップアプリの用途でrustを使うのは微妙って言ってたのかな?
ウェブのフロントエンドかデスクトップアプリの用途でrustを使うのは微妙って言ってたのかな?
213デフォルトの名無しさん
2022/03/07(月) 01:29:01.70ID:2Lq6XwwP >>212
伝わらないなら受け取ったとおりのことを言ってくれればいいよ
せっかくRustだけで書ける環境を思いついたのに、ローカルで結局Webフロントメインのコードになっちゃったから残念な気持ちになっただけ
せっかくRustだけなのにフロント側でPWAとかもうアホの極みだろ?
伝わらないなら受け取ったとおりのことを言ってくれればいいよ
せっかくRustだけで書ける環境を思いついたのに、ローカルで結局Webフロントメインのコードになっちゃったから残念な気持ちになっただけ
せっかくRustだけなのにフロント側でPWAとかもうアホの極みだろ?
214デフォルトの名無しさん
2022/03/07(月) 03:52:01.06ID:2Lq6XwwP openglベースのeguiの方がまだマシ
https://github.com/emilk/egui
ただlinux(ubuntu20.04)だとexampleすら動かない
$ cargo run --release
Finished release [optimized] target(s) in 0.09s
Running `target/release/eframe_template`
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
eframe_template: ../../src/xcb_io.c:260: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
中止 (コアダンプ)
$
まあ安全なRustだからしょうがないよね
wasmにしたら動いたけど、いろいろインストールして回る割にwasm-optがなくて躓いた(パス通してないので)
https://github.com/emilk/egui
ただlinux(ubuntu20.04)だとexampleすら動かない
$ cargo run --release
Finished release [optimized] target(s) in 0.09s
Running `target/release/eframe_template`
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting, sorry about that.
eframe_template: ../../src/xcb_io.c:260: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
中止 (コアダンプ)
$
まあ安全なRustだからしょうがないよね
wasmにしたら動いたけど、いろいろインストールして回る割にwasm-optがなくて躓いた(パス通してないので)
215デフォルトの名無しさん
2022/03/07(月) 04:16:17.83ID:2Lq6XwwP ちなみに落ちる原因はopenglのbugらしい
https://github.com/emilk/egui/issues/446#issuecomment-1029456471
https://github.com/emilk/egui/issues/446#issuecomment-1029456471
216デフォルトの名無しさん
2022/03/07(月) 04:16:56.49ID:kssBp/wX RustでまともなGUI書かしてくれ
217デフォルトの名無しさん
2022/03/07(月) 04:32:12.56ID:2Lq6XwwP エコシステムが不足しすぎて不安定すぎなのに詐欺っぽい宣伝ばかり先行してて、まともな人ほど寄り付きにくい状況になってるのが問題
218デフォルトの名無しさん
2022/03/07(月) 05:46:33.32ID:SxK5Ewlv >>209
Rust frontend frameworkは10種類以上あるから好みのものを選べばよい
もちろん仮想DOMを使うReact的なものから対照的なSvelte的なものまで色々ある
>>213
むしろPWA含めたWebアプリ全般でCSRだけでなくSSR/SSGが重要との認識が一般的になった今だからこそRust利用が重要視されている
当然isomorphicにrenderingするわけだから従来はReact/Next.js Vue/Nuxt.jsといったようにサーバー側でもJavaScriptを使わざるを得えず遅くて重いことが課題となっている
そのため両サイドでRustによるframeworkを採用することで従来の課題を解決するのが最新動向
Rust frontend frameworkは10種類以上あるから好みのものを選べばよい
もちろん仮想DOMを使うReact的なものから対照的なSvelte的なものまで色々ある
>>213
むしろPWA含めたWebアプリ全般でCSRだけでなくSSR/SSGが重要との認識が一般的になった今だからこそRust利用が重要視されている
当然isomorphicにrenderingするわけだから従来はReact/Next.js Vue/Nuxt.jsといったようにサーバー側でもJavaScriptを使わざるを得えず遅くて重いことが課題となっている
そのため両サイドでRustによるframeworkを採用することで従来の課題を解決するのが最新動向
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★9 [BFU★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 【旧Twitter】高市早苗 飲みぃのヤりぃの動画 paypayのみ [455031798]
- 脳ぶっ壊れワイにおすすめの快楽手段
- 【ガチ正論】一般人「中国に規制制裁されて、『中国ムカつく』じゃなくて矛先が『許さんぞ高市』になってる奴、頭おかしいの?」 ★2 [153490809]
- ジャパニーズってジャパニーズじゃん?
- 数学詳しい奴ちょっと来て
- ワイのIQでほんまに適正アルバイト(発達障害)
