Pure UI@rauchg|July 13, 2015 (9y ago)689,457 views I recently redesigned and implemented a new version of VideoPress, the WordPress video platform. The process involved, among other things, creating a new UI, ditching the dependency on Flash in favor of HTML5 <video> and introducing new functionality. The particular way in which I implemented it led me to some interesting insights around the growi
JavaVMをWebAssemblyで実装した「CheerpJ 4.0」正式リリース、Java 11に対応 Leaning Technologiesは、Webブラウザで実行可能なJavaVMのWebAssembly実装である「CheerpJ 4.0」正式版をリリースしました。 CheerpJ 4.0はOpenJDKのJavaランタイムをWebAssemblyで実装したもので、Java 11に対応。既存のJavaアプリケーションを再コンパイルなどを必要とすることなく、ビルド済みのJarファイルをそのままWebブラウザで実行可能です。 CheerpJ 3.xまではJava 8対応だったため、今回のバージョンアップで実用性が高まったと言えそうです。 #CheerpJ 4.0 is here! Read the latest blog post by @alexpignotti and @smmd
近年のWebアプリケーションは、単なる情報表示にとどまらず、複雑なデータ処理や高度な計算処理を必要とするケースが増えています。TypeScriptは型安全性と優れた開発体験でフロントエンド開発の標準となりつつありますが、パフォーマンスが重要な処理においては限界に直面することもあります。 一方、WebAssembly(以下Wasm)は、ブラウザ上で動作する低レベルなバイナリフォーマットとして、ネイティブに近いパフォーマンスを実現する技術です。C++やRustなどの言語からコンパイルされ、JavaScriptとシームレスに連携できるため、Web開発の可能性を大きく広げています。 しかし、「いつ、どないな場合にWasmを導入すべきなんか」「導入コストに見合う性能向上が得られるんか」といった疑問に対する実践的な回答は、まだ共有が不十分です。 この記事では、大規模データ処理に焦点を当て、TypeSc
WebAssembly 興味あるけど何?調べても、どうやって動いてるのかさっぱりわからないんだけど…という方多いのではないでしょうか!自分もそうでした 😂 この記事では、 WebAssembly の目指しているゴールをその具体例とともに示し、みなさんの今後の深堀りを行うためのインデックスとしてお役にたてれば幸いです!なお、この記事は以下のような読者を想定しています。 WebAssembly がどういうものか知りたい人 自分が作った WebAssembly がブラウザで実行されるまでの仕組みを知りたい人 はじめに 以下に書いてあることのほとんどは MDN に書いてあることをベースに、自分なりに丁寧に書き下したものになります。 非常によくまとまっているので、この記事と併せて読んでいただけると、より理解が深まると思います 💪 歴史 この技術が登場したことの背景を理解することは WebAsse
画像変換の WebAssembly 利用 本稿では、画像サイズ変更やフォーマット変換といった処理を WebAssembly で行う方法について紹介します。また、必要に応じてマルチスレッドを使用することで、処理を並列化し、より高速な実行を実現できます。 なぜ画像変換を WebAssembly で行うのか JavaScript は大量のビットデータの扱いには強くありませんが、WebAssembly は SIMD(Single Instruction, Multiple Data)などを使い、並列処理をサポートしています。これにより、画像変換のような重い計算を高速化できます。また、WebAssembly はブラウザだけでなく、Node.js や Deno など他の環境でも利用可能です。 今回は Emscripten を使用して C++でコンパイルを行います。WebAssembly に関して Ru
A few weeks ago, we launched Dagger Cloud v3, a completely new user interface for Dagger Cloud. One of the main differences between v3 and its v2 predecessor is that the new UI is written in WebAssembly (WASM) using Go. At first glance, this might seem an odd choice - Go typically isn't the first language you think of when deciding to program a Web UI - but we had good reasons. In this blog post,
WebAssemblyガベージコレクション機能がWeb標準の「Baseline」に。Safari 18.2でのサポート開始で これにより多くのWebデベロッパーが安心してWasmGCの機能を利用できることになります。 WasmGCとは Webブラウザ上で高速に実行できるバイナリフォーマットとして登場したWebAssemblyは、もともとガベージコレクション機能がありませんでした。 そのためにWebAssemblyアプリケーションを開発するプログラマは、プログラマ自身が確保したメモリの解放に責任を持つ必要がありました。もしも確保したまま解放し忘れたメモリがあると、どんどんプログラムが確保するメモリが増大していき、最終的にはメモリ不足などのエラーを引き起こすことになるためです。 WasmGCは、このWebAssemblyにガベージコレクション機能を持たせる機能です。アプリケーションによって割り
高速多機能なターミナルエミュレータ「Ghostty 1.0」正式リリース、ミッチェル・ハシモト氏が開発。今後はWebAssembly化による対応プラットフォーム拡大も HashiCorpの創業者の一人であるミッチェル・ハシモト氏は、個人のプロジェクトとして開発してきたターミナルエミュレータ「Ghostty」の正式リリースとなるバージョン1.0を公開しました(本記事公開時点でバージョン1.0.1が最新バージョン)。 合わせてオープンソースとしてGitHubでソースコードも公開されました。 https://t.co/39Xj39wheA pic.twitter.com/PH0qejFB4z — Mitchell Hashimoto (@mitchellh) December 26, 2024 ハシモト氏は2023年12月にHashiCorpを退職していますが、以前から個人のプロジェクトとしてタ
Firefox、WebAssemblyのコンパイル処理が75倍速に。SpiderMonkeyのJITコンパイラ改善で FirefoxのJavaScriptエンジンでありWebAssemblyの実行エンジンでもある「SpiderMonkey」の開発チームは、WebAssemblyのコンパイル処理を従来よりも最大で75倍高速にする改善を行ったことを、ブログ「75x faster: optimizing the Ion compiler backend | SpiderMonkey JavaScript/WebAssembly Engine」で明らかにしました。 二段目のコンパイラがメモリを使いすぎている この性能改善のきっかけは、マイクロソフトがオープンソースで公開している機械学習ライブラリ「ONNX Runtime」のWebAssembly版をSpiderMonekyで実行した際に、最適化の
WebAssemblyランタイム「Wasmer」がiOSをサポート、iOS上でWebAssemblyを実行。「Wasmer 5.0」正式版リリース 米Wasmer社はスタンドアロンなWebAssemblyランタイム「Wasmer 5.0」の正式リリースを発表しました。 Wasmer 5.0では、iOSのサポート、WebAssemblyランタイムのバックエンドがV8やWAMRなどに変更可能になるなどの新機能が加わりました。 Introducing Wasmer 5.0. Experimental V8, Wasmi and WAMR backends iOS support Enhanced Performance Upgraded LLVM and Cranelifthttps://t.co/wpwcmMT0tg — Wasmer (@wasmerio) October 29, 2024
Leaning Technologiesは、Webブラウザ上でx86バイナリをそのまま実行できるWebAsesmbly製の仮想マシン「WebVM」をバージョンアップした「WebVM 2.0」を公開しました。 従来のWebVM 1.0では、Webブラウザ上の仮想マシンでx86版のLinuxを起動し、コマンドラインからさまざまな操作が可能でした。 参考:WebAssembly製のx86仮想マシン「WebVM」が登場、Webブラウザ上でLinuxや各種コマンド、アプリがそのまま実行可能 今回公開されたWebVM 2.0では、GUIを備えたLinuxデスクトップ環境までWebブラウザ上でサポートされたことが最大の特徴です。 下図で示されるように、仮想マシン上でさまざまなプロセスを実行し、さらにLinuxシステムコール経由でGUIのディスプレイ、ローカルディスク、ネットワーキングをサポートしています
11月15日、Leaning Technologiesが「WebVM 2.0: ブラウザ上で稼働する完全なLinuxデスクトップ環境」と題した記事を公開した。この記事では、ブラウザ内で実行可能なLinuxデスクトップ環境「WebVM 2.0」の機能とその技術的な仕組みについて詳しく紹介されている。 WebVMとは WebVMは、ブラウザ内でクライアントサイドで実行される完全なLinux環境であり、永続的なデータストレージ、ネットワーキング、Xorgおよびデスクトップ環境をサポートする仮想マシンである。WebAssemblyを利用し、現代のほぼすべてのブラウザで動作するため、モバイルブラウザにも対応している。Leaning Technologiesによって開発されたx86仮想化エンジン「CheerpX」を基盤にしている。 WebVM 2.0の新機能 新たにリリースされたWebVM 2.0では
スタンドアロンなWebAssemblyランタイム「Wasmer」の開発元であるWasmer社は最新のWasmer 4.4の新機能として、C言語をWebAssemblyにコンパイルし、WebAssembly環境でそのまま実行可能する機能を発表しました。 下記はWasmer社が用意した、Webブラウザ上にWebAssemblyでBash環境を構築する「wasmer.sh」のコマンドラインから、wasmerによりC言語をコンパイルしてWebAssemblyモジュールを生成し、実行する操作を筆者のWindowsマシンで実際に試したところです(赤線は筆者による)。 Webブラウザ上でC言語をWebAssemblyにコンパイルし、そのままWebAssembly環境上で実行できています。 合わせて登場したJavaScript SDKによってNode.jsやBunなどのサーバサイドのWebAssembly
浮動小数点数にはIEEE 754という標準規格がありますが、規格の範囲内であっても僅かに実装による差異が認められています。その一つがNaNのビットパターンです。 WebAssemblyはNaNのビットパターンに関しては実装依存の結果を許容しており、Wasmランタイムは特に深い理由がなければホストCPUの浮動小数点命令をそのまま用いると考えられるため、結果として「WasmからNaNのビットパターンを観測することでホストのCPUの命令セットを推測する」ことができます。 ここでは、「x86(_64)」「RISC-V」「その他(Armなど)」の3択で判定することを目指します。 判定コード 判定するコードは以下です: #include <inttypes.h> #include <stdio.h> #include <string.h> float u32_to_f32(uint32_t x) {
Rust and WebAssemblyでSPAを作ってみよう:Webアプリ実装で学ぶ、現場で役立つRust入門(12) 第12回からは、第11回までで作成した投稿アプリの延長として、Rust and WebAssemblyでTODOアプリを開発します。第12回では、プロジェクトの構築やさまざまな準備のためのコードを通じて、Rust and WebAssemblyの基本的な利用方法を理解します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く