問題タブ [rust-wasm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - Rust の WebAssembly で Window オブジェクトからクエリ文字列を取得する
コンテキスト: 私は Rust と WebAssembly を学んでおり、練習問題として、Rust コードから HTML キャンバスにペイントするプロジェクトを持っています。Web リクエストからクエリ文字列を取得したいので、そこからコードでどの描画関数を呼び出すかを決定できます。
?
この関数は、先頭を削除してクエリ文字列を返すように記述しました。
それは機能しますが、私が使用した他の言語のいくつかでどれだけ簡単になるかを考えると、驚くほど冗長に思えます。
これを行う簡単な方法はありますか?それとも、冗長性はRustでの安全のために支払う代償にすぎないので、慣れる必要がありますか?
@IInspectable からの回答ごとに編集: 連鎖アプローチを試したところ、次のエラーが発生しました。
それをよりよく理解できれば幸いです。私はまだ頭の中で所有権の素晴らしさを得ています。今でしょ:
これは確かに改善です。
rust - Rust js_sysを使用してブラウザのローカルタイムゾーンを取得するにはどうすればよいですか?
js_sys
クレートを使用して、ブラウザーでいくつかの Rust コードを実行しています。
使い方がわかりにくいIntl::DateTimeFormat
。
私が望むのは、このJSコードで行われるローカルタイムゾーンを取得することだけです:
これは Rust では機能しないようです:
新しいDateTimeFormat
構造体を作成してほしいようですが、そのようなものがあれば「デフォルト」のものを取得したいだけです...
どうすればこれを機能させることができますか?
rust - Web Worker への React App インポート Wasm の作成
私は wasm-bindgen と反応アプリ (create-react-app で作成) を使用しており、wasm モジュールを Web ワーカーにインポートしたいと考えています。
最初に、この例を使用しています。
「メインスレッド」で wasm を使用するために、react-app-rewired をセットアップしました。config-overrides.js は次のとおりです。
メイン スレッドでは、wasm をインポートして、ローカル npm リンクの後に次のように使用できます (npm モジュールは公開しませんでした)。
メインスレッドでwasmモジュールをコンパイルしてからスレッドにpostMessageすることになっていると読んだので、次のことを試しました:
これにより、次のエラーが表示されます。
通常のインポートコマンドでも試しました:
そして、次のエラーが表示されます。
動作させるために webpack.config に追加できるものはありますか? 正しいセットアップは何ですか?
git - フォルダーwwwをgithubリポジトリに追加できません
次のrustwasmプロジェクトを作成しました。
フォルダーでいくつかの作業を行いましたwww
が、github にコミットしようとすると、www
フォルダーが追加されません。
gitが無視することを確認しましたが、どこにも無視されていません。追加されない理由を知っている人はいますか?
これは私が従ったものです。
の出力git status
:
rust - Rust Game of Life WebAssembly を静的 Web サイトとして機能させるには?
Rust Game of Life のチュートリアルを完了し、Web ブラウザーで動作するゲームを持っていますが、バンドルされているデモ Web サーバーからのみ動作します。サーバーを起動するnpm start
と、ポート 8080 で webpack-dev-server が実行されます。そのポートを介してサイトにアクセスすると、正常に動作します。ただし、サイトを Apache などの Web サーバーにコピーしようとすると、正しく読み込まれません。私が現在得ているエラーは次のとおりです。
チュートリアルから、Web サイトのルートはwww/
リポジトリで呼び出されるフォルダーであり、Rust プログラムから生成された wasm モジュールは の下に配置されpkg/
ます。www/node_modules/wasm-game-of-life
そのポイントからのシンボリックリンクがあり、../../pkg/
そのシンボリックリンクを最上位pkg/
フォルダーの実際のコピーに置き換えて、Web サイトがフォルダー内に完全に含まれるようにし、www/
そのフォルダーを自分の Web サイトのhttp://に配置しました。 www.north-winds.org/gol/にアクセスすると、上記のエラーが返されます。スタンドアロンで動作させるには、何を変更する必要がありますか?
私が理解しているように、この WebAssembly Game-of-Life は基本的にスタンドアロンのクライアント側アプリであり、適切な MIME タイプが添付された静的ファイルを提供できる Web サーバー以外には何も必要ありません。必要な特別なものは何もありません。どこかで WebSockets についての言及を見ましたが、なぜこのアプリにそれが必要なのかわかりません。これをhttps://webassembly.org/の C 用の "Hello, World" WebAssembly の例と比較すると、C ソース コードから生成された.wasm
ファイルと、それを実行するための単一の JavaScript および HTML サポート ファイルが得られました。静的な Web サーバーの場所にコピーするだけで、ファイルは正しく機能しました。これは、Rust の例で私が望むものです。
Rust Game-of-Life の関連コードは次のとおりです。最上位の HTML ファイルには、次の行が含まれています。
ブートストラップ JavaScript ファイルには、これだけが含まれています。
そして、それが参照する index.js ファイルには、Wasm の他のグルー ロジックの中でも次のものが含まれています。
この作業をスタンドアロンにするために欠けているものは何ですか?