Posted on 2022-08-04, Updated 2022-08-06; Tags: javascript, programming, rust, webassembly, webdev If you're just getting into compiling your Rust code into WebAssembly and want to load it in a web browser, you might be taken aback by the multitude of ways of doing so. This seems to be due to the differing pace of web browsers implementing web platform features over the years. A lot of entry-level
Rust でモザイク加工を実装し、それを WebAssembly として Web アプリから利用する2022-07-11 Twitter のアイコンが本人とかなり乖離してきたため、職場の人に「え、誰ですか?」と言われることが多々あり、そろそろアイコンを変えようかなと思っていました。でもアイコンを変えると認識できなくなると思ったので、少しずつアイコンにモザイクをかけていこうと思い、モザイクツールを自作していました。自作しなくても既存のツールがあるのではと思うかもしれませんが、車輪は再発明するものなので再発明しました。ただ車輪の再発明とは言っても、Wasm で動作(=クライアントで加工してくれるからサーバーに送らなくていいし Web で使える)という点では比較的新しい車輪の再発明な気がしています。 それがこの umie です。ファイル選択して送信するとこのようにモザイクをかけられます。 ちなみ
メールマガジン「WebAssembly Weekly」を発行しているScott Logicは、WebAssemblyの利用状況などに関する調査報告として「The State of WebAssembly 2022」を公開しました。 回答者はWebAssembly関連の技術者299人。 言語はRustがトップ、Blazorの利用が急上昇 WebAssemblyはソースコードをコンパイルしてバイナリに変換することで生成されますが、そのソースコードを記述するプログラミング言語としてもっとも利用されているのはRustで、昨年よりもさらに他のプログラミング言語と差を広げてトップを走っています。 2位がC++、マイクロソフトのBlazorが急上昇して3位になったのは注目ですね。 サーバレスとプラグインでの利用が上昇 WebAssemblyをどのようなアプリケーションで用いているか。トップはWebアプリ
wasm-packを使うことで、ビルドしてwasm-bindgen-cliでさらに変換処理を行い、npmで配布可能なパッケージにするという多段階必要なビルド手順をまとめることが可能です。 またnewコマンドのようなテンプレートから生成する機能などもあり、より手軽にWasmの実行を行えます。 後述のTrunkとの違いは、wasm-packはwebpackなどのJavaScript側で使われるバンドラーなどと合わせて使うことが想定されていることです。 webpackと合わせて使わない場合には今回のテーマであり後述するTrunkを利用したほうがより簡単にWasmの実行を行えます。 wasm-opt GitHub binaryenというリポジトリでwasm-optというツール含むいくつかのツールが作られています。 wasm-optはその名の通りWasmの最適化をしてくれるツールです。 与えるオプシ
本連載では、Webブラウザー上でJavaScriptとともに動作できるバイナリ形式のプログラムファイル「WebAssembly」を、Rustプログラミング言語で実装する方法を説明していきます。前回はRust言語の基礎を説明しました。今回はいよいよ、Rust言語でWebAssemblyを実装していきます。また実装したサンプルを利用して、WebAssemblyのメリットなどを説明します。 はじめに 本連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。初回記事ではWebAssemblyの背景およびRust開発環境の作成について、前回記事ではRust言語の基本的な言語仕様について説明しました。 今回はこれまで説明した内容を利用して、実際にRust言語でWebAssemblyを実装していき
成果物 Rust製ソルバの改良 探索部の抽象化 探索打ち切りのための拡張 WebAssembly化 将棋Player (自作WebComponents) まとめ 成果物 https://sugyan.com/tsumeshogi-solver-wasm/ 局面を編集し指定し、その局面からの詰み手順を探索する。クエリパラメータにSFEN文字列を入れることで初期局面を指定することもできる。(例) 現時点での仕様は 探索結果の指し手はCSAの文字列配列 最短・最善の解を返すとは限らない 探索しきれない場合は5秒で打ち切り Repository: https://github.com/sugyan/tsumeshogi-solver-wasm 以下はこれが出来るまでの過程のメモ。 Rust製ソルバの改良 昨年末に、Rustでdf-pn探索を実装して詰将棋のソルバを作った。 memo.sugyan.
ink! 3.0: Parity’s Rust-Based Language for WASM Smart Contracts Gets a Major Updateink!, Parity’s Rust-based programming language for writing Web Assembly (Wasm) smart contracts, has just launched its biggest update to date… ink!, Parity's Rust-based programming language for writing Web Assembly (Wasm) smart contracts, has just launched its biggest update to date. ink! is used by developers in the
この記事について この記事はアドベントカレンダー2021 Rust 四日目の記事です 概要 フロントエンドエンジニアである筆者がWASM(Rust)でWebアプリを作ってみたので、 その際の技術選定(主にビルド・開発補助周り)について 作ってみた雑感、特に「ぶっちゃけフロントエンドRust[1]ってどうなの?」という点 について書いていこうと思います。 TL,DR 2021年12月現在フロントエンドでのRustの採用は技術的に可能だがエコシステムが未発達なのでそれなりに技術力とコストを要求される とはいえ伸び代はかなりあるのでエコシステムが頑張ってくれれば、数年後には十分一般的な選択肢になってるかも(なってて欲しい) 主な対象読者 フロントエンドに携わる機会がある方々 この記事を読んでいただくことで・・・ フロントエンドという文脈におけるWASMの現状を知ってもらう フロントエンドをRus
Reality check for Cloudflare Wasm Workers and Rust Published on: September 17, 2021 With native Rust support recently announced for Cloudflare Workers, I wanted to take a moment and write about the possibilities, but also the obstacles as a sort of reality check for myself. I’m extremely bullish about Cloudflare, Wasm, Rust, edge computing, and the recently announced native Rust support. If I’m no
みなさん、WebAssembly聞いたことありますよね? スマートキャンプでエンジニアをしている瀧川です。 私が初めてWebAssemblyを目にしたのは確か2018年、VimをWebAssemblyに移植してブラウザで動くようにしたという記事だったかなと思います。 https://github.com/rhysd/vim.wasm 当時は「はー、なんだか未来を感じるけど、どう使われてくんだろう」くらいな認識で、最近までほとんど注目していませんでした。 しかし、少し前にffmpeg.wasmについての記事がバズっているのを見かけたときビビっときましたね。 ブラウザ上でffmpegが動かせるのはWebアプリケーションを作る上で可能性が広がりますし、何よりWebAssemblyのポテンシャルが活かされていると感じました。 そこで今回、WebAssemblyの世界観を味わうために、代表的なWeb
Rustはじめました Rustイイですよね。Cと同程度のパフォーマンスで動作して、メモリリークを防止し、マルチスレッドも安全に記述できます。GC(ガベージコレクション)処理よりも高速にメモリーを開放します。今まで、より高速に動くプログラミング言語を求めるとC/C++等が必要になり、安全面で気をつけないところが増えてしまって手が出しづらく、一方で、Javaなどの安全面が確保された言語や、JavaScriptやPythonなどのスクリプトで記述できる言語は、nullやundefinedなどを気をつける必要があり、更に実行速度を上げるには課題がありました。(Javaは十分速いと思います) Rustは、C/C++と同程度のパフォーマンス(強い)を持ちつつ、型やメモリやスレッドに関する安全面を備えているため、今後、OSやミドルウェアの開発に使われることが増えるのではと思っています。一方で、JavaS
調査は今年の6月に行われ、196カ国(米国21.8%、ドイツ9.1%、中国9.1%など)に分散した250人のITエンジニアが回答。 WebAssemblyアプリケーションのコードを記述するプログラミング言語として何が使われているかとの調査では、Rustが最も多く、C++、AssemblyScript、Blazor、Goの順に使われていることが示されました。 Rustは比較的容易にWebAssemblyが生成できることがWebAssemblyでの人気の理由でしょうか。4位のBlazorは少し意外ですが人気があるのですね。 WebAssemblyの利用目的では、Webアプリケーション開発(Web Development)が最も多く、続いてゲーム開発、サーバレス、コンテナ化(Containersation)、オーディオ/ビデオ処理、科学計算、IoT、AIの順となっています。
Speeding Up the Webcola Graph Viz Library with Rust + WebAssembly For a recent project I've been working on, I wanted to include a graph showing the relationships between different artists on Spotify. Spotify provides the data directly from their API, and I had everything set up to pull it for a user's top artists and into the browser. This is the story of how I took the initial unoptimized graph
Why WASM anyway? First of all I want to provide some context: Working on asset database for my game engine prototype I found that I want to import assets ahead of the game start. And convert them from tool specific format into engine native format. This would allow to reduce amount of code in the engine itself as well as improve performance as no content conversion would be required at runtime. I
This image includes the work that is distributed in the Apache License Version 2.0 株式会社Flatt Securityでセキュリティエンジニアとして働いている米内です。 本稿では、Envoy に独自メトリクスを追加するようなフィルタのサンプル実装の提示を通して、 WebAssembly によるサービスプロキシの拡張を可能にする仕様である Proxy-Wasm について紹介します。 Proxy-Wasm とは Proxy-Wasm の周辺 Rust による Envoy の拡張 SDK の利用 スタートアップ処理 メトリクスの定義 メトリクスの値の変更 動作例 おわりに Proxy-Wasm とは 近年は WebAssembly System Interface(WASI) を中心として、「WebAssembl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く