2月11日、CrestonBlogが「WASMはコンテナを置き換えるだろう(WASM will replace containers)」と題した記事を公開した。この記事では、WebAssembly(WASM)がコンテナ技術を置き換える可能性について詳しく紹介されている。以下に、その内容を紹介する。 2月11日、CrestonBlogが「WASMはコンテナを置き換えるだろう(WASM will replace containers)」と題した記事を公開した。この記事では、WebAssembly(WASM)がコンテナ技術を置き換える可能性について詳しく紹介されている。以下に、その内容を紹介する。 移植性の高さ コンテナはソフトウェア開発における重要な問題を多く解決してきた。コンテナ登場以前にもVM(仮想マシン)は存在していたが、使い勝手の面でコンテナほど洗練されていなかったため、コンテナは

クロスプラットフォームのワークスペースアプリ「Notion」を提供するNotion Labsは2024年7月10日(米国時間)に公式ブログで、NotionのブラウザバージョンのデータキャッシュにWebAssembly(WASM)実装の「SQLite3WASM/JS」(以後、WASM版SQLite3)を採用した事例を紹介する記事を公開した。 2021年ごろ、WindowsおよびmacOS版のNotionデスクトップアプリにおけるパフォーマンス向上を目的にSQLiteを採用した同社は、ネイティブのモバイルアプリでもSQLiteを採用してきた。そして、ブラウザ版アプリには、WASM版SQLite3を採用したという。Notion Labsは「WASM版SQLite3を採用することで、全ての最新ブラウザでページ間の遷移のパフォーマンスを20%改善できた。インターネット接続など外部要因によりAPI

WebAssemblyをちょっといじってみて思ったところをまとめてみます。 設計思想WebAssembly/designに設計文書がまとまっています。特にHighLevelGoals.mdから読み取れるポイントは以下の4点です。 サンドボックス化された環境であること。 移植性があること。つまり、特定の実CPUアーキテクチャ等に依存しないこと。 少なくともC/C++の(十分に高速な)コンパイルターゲットとして機能すること。 安定した仕様を持つこと。 サンドボックスという観点からは、先行技術として以下のようなものが特筆に値します。 WebサンドボックスJavaScript およびasm.jsJavaアプレット Flash (ActionScript) NaCl, PNaCl Web以外のサンドボックス OSのユーザーランド、特にLinux userland これらのサンドボックスとの比

マイクロソフト、.NET中間言語をWebAssemblyにコンパイルする「Jiterpreter」をBlazorWebAssemblyに搭載へ、.NET 8で マイクロソフトは今年(2023年)11月にリリースが予定されている.NET 8のBlazorWebAssemblyにおいて、.NET中間言語をWebAssemblyに動的にコンパイルすることで、Blazor WebAssemlbyの高速化を実現する機能を備えた「Jiterpreter」を搭載予定であることを明らかにしました。BlazorはWebAssemblyで.NETランタイムを実装している そもそもBlazorWebAssemblyは、.NETとC#などを用いてWebブラウザ上で実行可能なWebアプリケーションを開発できるフレームワークおよびランタイムです。 一般にWebブラウザはJavaScriptで記述されたコードを

GoogleChromeに続いてFirefoxもWebAssemblyのガベージコレクション機能を試験的に実装していることが、KotlinのWebAssembly対応ドキュメントから分かりました(現時点ではFirefoxのBeta版やNightlyのドキュメントには記載がないようです)。 すでにGoogleChromeが、Dart言語のWebAssembly対応への対応のために試験的実装を示すOrigin TrialとしてWebAssemblyのガベージコレクション機能の実装を開始しています。 参考:WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進 Firefoxでもほぼ同様に、現在Nightlyとして公開されているFirefox 112aにおいて、開発者向けの設定である「about:co

Webブラウザ上でWebAssemblyベースのNode.js環境を実現する「WebContainer」がAPI提供開始。ブラウザ内ファイルシステム、HTTPサーバ、Node.js CLIなどWebAssemblyを用いてWebブラウザ上でNode.js環境を実現する「WebContainer」などを提供するStackBlitzは、WebContainerにアクセスできるAPIの提供を開始したと発表しました。 Today, after years of battle testing by millions of developers, in collaboration with browser vendors: WebContainerAPI is now available to everyone. Startbuilding the next generation of inte

はじめに 引き続きRust +WebAssembly +SolidJS で遊んでいます。前回は、Rust 側で作成した文字列をJavaScript 側で console.log に出力することを考えましたが、今回はJavaScript 側から何らかのデータをRust 側へ渡すことを考えたいと思います。今回も、wasm-bindgen[1] に頼らずにやっていきましょう。 メモリの確保と管理WebAssembly のメモリ空間は、シンプルなLinear Memory(線形メモリ)になっています。Rust とJavaScript との間で、「プリミティブな数値型」より大きなデータをやりとりするためには、このLinear Memory 上にデータを配置するのが良さそうです[2]。 単一のメモリバッファの確保 メモリの確保はRust 側で実施します。線形メモリ上には WebA

Cloudflare WorkersのJavaScript/WASMランタイム「workerd」がオープンソースで公開。NanoservicesやHomogeneous deploymentなど新技術を実装Cloudflareは、同社のCDNエッジでJavaScript/WebAssemblyを実行するサービス「Cloudflare Workers」のコアランタイム部分を「workerd」(読み方はワーカーディー:worker- dee)としてオープンソースで公開しました。GoogleがオープンソースのChromiumをベースにGoogleChromeを製品として提供しているのと同様に、CloudflareはworkerdをベースにCloudflare Workersのソフトウェアを開発していると説明されています。It’s here! workerd (no that’s not

フロントエンドエンジニアがRust とWASM を使ってフロントエンドのコードを書こうとすると、意外とRust のエグいところが出てきて面食らいます。 この配信では、フロントエンドに詳しい mizchi さんに、KOBA789 がRust とWASM を教えていきます。 ★事前資料 https://gist.github.com/mizchi/86e53810e08eee2176d98b20870a9b86 ★mizchi さんTwitter: https://twitter.com/mizchi ★KOBA789Twitter: https://twitter.com/KOBA789 YouTube(このチャンネル): https://youtube.com/c/KOBA789

これだけ多種多様なデバイスに対して、ログイン画面やパーソナライズされたポータル画面、動画の再生などの機能を実現するために、Amazon Prime VideoのアプリケーションはC++で開発されたJavaScript VMと、その上で動くJavaScriptアプリケーションの2つから構成されています。 そしてそれぞれが必要に応じてデバイスにダウンロードされ、実行されます。 特にJavaScriptのアプリケーション部分は実行時にダウンロードされ実行されることで、機能追加などの変更やバグフィクスが容易になっていると説明されています。 プロトタイプのWebAssembly化で10倍から25倍高速にAmazon.comがこのAmazon Prime VideoのアプリケーションにWebAssemblyの採用を検討し始めたのは2020年8月とのことです。 同社はプロトタイプとして低レイヤのJav

WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった きっかけ(となったtweetの訂正) もう1ヶ月以上も経ってしまったが、こちらのtweetの公約どおり、WebAssembly (Wasm)におけるDOMの操作について知っている限りのことを書こう。 まずこの節の見出しのとおり、上記の発言は大きく間違えている。私はReference Typesがもたらすパフォーマンス的なメリットや、JavaScriptのオブジェクトを直接Wasmで渡すことが(一応)可能になったということを根拠に上記のtweetをした。しかし下記のtweetでも否定されているとおり、この観点は穴だらけなので、実際のところ多くの人が「直接操作できる」と実感できる状態ではないだろう。 詳細は後述するとして、我ながらひどい凡ミスを犯してしまった。JavaScriptのことを十

Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。佐伯氏は、WebAssemblyのWebの外の応用について発表しました。全2回。前半は、Wasmがアツい理由とデザインゴールについて。 今回のテーマは「Kernel/VM的WebAssembly入門」 佐伯学哉氏(以下、佐伯):佐伯が『WebAssemblyのWeb以外のこと全部話す』というタイトルで発表します。 まず、WebAssemblyとは何ぞや? という一般的な話なのですが、「Wikipedia」からの引用によれば、「Webブラウザーのクライアントサイドスクリプトとして動作する低水準言語である。ブラウザー上でバイナリフォーマットのかたちで実行可能であることを特徴とする」とあります。 実際の応用例としては、WebでGoogle Meetの背景ぼかしに使われていた

Designed forWebAssembly AssemblyScript targetsWebAssembly's feature set specifically, giving developers low-level control over their code. FamiliarTypeScript syntaxItssimilarity withTypeScript makesit easy to compile toWebAssembly without learning a new language. Right at your fingertips Integrates with the existing Web ecosystem - no heavy toolchains to set up.Simply npm installit! #!ru
RustはじめましたRustイイですよね。Cと同程度のパフォーマンスで動作して、メモリリークを防止し、マルチスレッドも安全に記述できます。GC(ガベージコレクション)処理よりも高速にメモリーを開放します。今まで、より高速に動くプログラミング言語を求めるとC/C++等が必要になり、安全面で気をつけないところが増えてしまって手が出しづらく、一方で、Javaなどの安全面が確保された言語や、JavaScriptやPythonなどのスクリプトで記述できる言語は、nullやundefinedなどを気をつける必要があり、更に実行速度を上げるには課題がありました。(Javaは十分速いと思います)Rustは、C/C++と同程度のパフォーマンス(強い)を持ちつつ、型やメモリやスレッドに関する安全面を備えているため、今後、OSやミドルウェアの開発に使われることが増えるのではと思っています。一方で、JavaS

この記事はBuild your ownWebAssembly Compilerを翻訳・意訳したものです。また独自の説明を加えた部分もあります。 前置き もしあなたがWebAssemblyについて聞いたことがなく、本当に詳しい紹介をしてほしいのであれば、Lin Clark氏のCartoonGuideを読むことをお勧めします。 このブログ記事ではWebAssemblyが「何か」を学ぶことができますが、「なぜ存在するのか」についても簡単に触れておきたいと思います。 私の視点では、この図が非常に簡潔にまとめられています。 上の図は、ブラウザ内でのJavaScriptコードの実行を簡略化したタイムラインです。左から右に向かって、コード(一般的にはminifyされた状態で提供されます)は AST に解析され、最初はインタプリタで実行され、徐々に最適化/再最適化されて、最終的には非常に高速に実行さ

Runtime and compiler performance is out of this world.New features include bettererror handling, a more powerfulAPI, cross-compilation, headlessWasmer and so much more!It’s been two years since we published the firstline ofWasmer code, the first server-sideWebAssembly (Wasm) runtime able to runNginx server-side. We believe thatWebAssembly will be a crucial component for the future of softw

WebAssemblyが目指していること。ナノプロセスモデルの実現、システムインターフェイス、実行時リンクの実装など Webブラウザ上でネイティブコードのように高速に実行できるバイナリフォーマット「WebAssembly」は、すでにChromeやFirefox、Edge、Safariなどの主要ブラウザでサポートされ、2019年12月にはW3Cの勧告にも到達しました。 参考:WebAssemblyがW3Cの勧告に到達。「WebAssembly Core Specification 」「WebAssembly WebAPI」「WebAssemblyJavaScript Interface 」の3つ このWebAssemblyをWebブラウザだけでなく、デスクトップPCやサーバ、IoTデバイスなどのあらゆる環境でセキュアに実行できるように、エコシステムの実現を推進しているのが、Mozilla

注目を集めるWebAssemblyとRustそしてサーバーレスに結びつく未来を、Cloudflareのエンジニアが解説する。JavaScriptの登場によって、Webブラウザーはスタティック(静的)なWebページを表示するだけの存在から、より動的なアプリケーションを実行するプラットフォームに進化した。そしてそれをさらに進化させるために登場したのがWebAssemblyだ。WebAssemblyは2015年にMozilla Foundationによって発表され、その後2019年12月にW3Cのレコメンデーションとして採択されたブラウザーで実行されるコードのバイナリーフォーマットの標準だ。HTML、CSS、そしてJavaScriptに続く進化のための要素の一つとして紹介されるWebAssemblyは、動的型付けのインタープリター言語であるJavaScriptと比較してコードのサイズが小さく

ブラウザ外でのWebAssembly の利用が盛り上がっています。 盛り上がりはスタンドアローンのランタイムを使ったWebAssembly の実行だけではありません。Python,Ruby,Rust といった言語からのWebAssembly の実行にも注目が集まっています。 なぜそんなことが望まれるのでしょうか? 理由はいくつかあります: 「ネイティブ」をもっと簡単に Node あるいはPython の CPython のようなランタイムでは、C++ などの低レベル言語でもモジュールを書ける場合があります。低レベル言語を使った方が高速なためです。Node のネイティブモジュールやPython の拡張モジュールを利用できるのですが、これらのモジュールはユーザーのデバイスでコンパイルが必要であり、使いやすいとは言えません。WebAssembly の「ネイティブ」モジュールを使えば

Wasmtime, theWebAssembly runtime from the Bytecode Alliance, recently added anearly preview of anAPI for .NET Core,Microsoft’s free, open-source, and cross-platform application runtime. ThisAPI enables developers to programmatically load and executeWebAssembly code directly from their .NET programs. .NET Core is already a cross-platform runtime, so why should .NET developers pay any attentio

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く