WebAssemblyの記事一覧プレミアムユーザー限定記事MOONGIFTプレミアムは、月額500円の有料サービスです。ImageMagickをWebAssemblyでWebアプリから使いやすく様々なローカルアプリケーションがWeb化していますが、JavaScriptの実行速度はネイティブアプリケーションに比べて劣ってしまいます。WebAssemblyを用いることで大幅に改善できます。Web上で使えるFFMPEGWebAssemblyを使うことで、これまでのWebでは難しかったスピードでアプリケーションを実行できるようになります。DOMやネットワークが使えないといった制限はありますが、計算処理を高速に行えるのは大きなメリットです。WebAssemblyをLuaに変換WebAssemblyはユニバーサルバイナリとも表現されます。どんな言語であってもWebAssemblyに変換できれば、各プログラミング言語にあるWebAssembly環境(機能拡張など)で実行できます。そんな万能的に使えるWebAssemblyをあえてLuaに変換するのがwasm2luaです。WebAssemblyを使ってファイルを圧縮/伸張WebAssemblyは標準機能としてはDOMやネットワークが使えないので、その適用部分に悩む人も多いでしょう。Webアプリケーションにおいて、UIやネットワークに触れない部分は多くありません。ローカルアプリケーションとして考えれば、そのようなアプリケーションの方が多いはずです。Rubyが使えるWebフロントエンドフレームワークWebブラウザで唯一実行が保障されているプログラミング言語はJavaScriptです。規模の大きなシステムを書きたがらなかったり、サーバサイドは別な言語を使っているケースもあります。そこで今回はRubyでWebアプリケーションが書けるPrismを紹介します。Prismの使い方デモです。RustだけでWebアプリケーションを開発するフレームワークWebAssemblyを開発する際の最も基本的な言語となるのがRustです。WebAssemblyでは元々DOMやネットワーク操作ができませんが、Rustのwasm-bindingによってWebブラウザ側のAPIを実行できるようになりました。その結果、WebAssembly活用の幅が広がったと言えます。WebAssemblyを使ったWebブラウザ用全文検索Webサイトには検索機能をつけるのが基本です。その多くの場合、サーバサイドでデータベースを検索し、その結果を返すようになっています。コンテンツデータをあらかじめクライアントサイドに持っておいて、JavaScriptで絞り込んだりします。今回紹介するtinysearchはクライアントサイドで検索を行います。WebAssembly製のWebターミナルWebブラウザでも十分ターミナルが実装できるようになってきました。専用のソフトウェアをインストールする必要もなく、すぐにサーバにアクセスできます。公開鍵認証などは多少面倒ですが、十分使えるレベルです。GoによるWebAssembly開発を強力にサポートGoでWebAssembly(WASM)が書けるようになったことで、GoだけでWebアプリケーションを作るトレンドが生まれています。個人的にもこれは大いに期待する流れです。言え、開発環境の準備に手間がかかるのは良くありません。そこで使ってみたいのがgo-web-appです。マイコンやWebAssemblyが作れる軽量なGo言語Goは一つのコードから各種OSで動作するバイナリが生成できます。Piでも動くバイナリが生成できるので、IoTなどでも使えます。PiでLinuxが動くからに他なりません。マイコンの場合はどうでしょうか。そこで使ってみたいのがTinyGoです。Rust製のFlashプレイヤーかつてWebコンテンツの多くを担っていたFlash。今はもう廃れて新作を見ることはほとんどなくなってしまいましたが、今なお利用しているサイトは多いです。WebブラウザもFlashプラグインをサポートしなくなっており、このままでは再生すらできなくなってしまいます。そこで作られているのがRuffleです。WebAssemblyで実装されたRubyWebブラウザ上でJavaScript以外のプログラミング言語を実行したいと言うニーズはとても強くあります。一つはJavaScriptで実行エンジンを開発する方法、またはコンパイルしてJavaScriptを生成する方法などがあります。最近有力なのがWebAssemblyで実行エンジンを実装する方法です。コンパイルしてWebAssemblyを生成する専用言語WebAssemblyはプログラミング言語ではなく、様々な言語から生成されるWebブラウザ上で動作するバイナリフォーマットです。CやC++、Rustで書くのが基本ですが、GoやJava、C#など多彩な言語からWebAssemblyを生成できます。WebAssemblyで高速に3D/2D地図を生成ゲームなどで地図データを使いたい時は良くあります。シムシティなどのシミュレーションゲームであったり、ローグライクなRPGでも使えます。いった時の地図はある程度のランダム性があるとより面白いです。WebAssemblyファイルをKotlin/Javaに変換WebAssemblyはWebブラウザ上のみならず、ユニバーサルバイナリとして様々な環境で実行できるようになっています。WebAssemblyはバイナリだけでなく、テキスト形式にもでき、S式として可読性も多少あるフォーマットです。そこで作られたのがwasm2ktです。Rust製のJavaScript実行エンジンRustでWebAssemblyを開発している人は多いでしょう。JavaScriptと比べて高速に動作しますが、コンパイルが伴うので動的に動作を変えるのが困難です。ユーザにコードを入力してもらって、それをマクロ的に動かしたいということもあるでしょう。そんな時に使ってみたいのがboaです。Dockerfileの依存性を可視化Dockerはまるで魔法のように環境が整います。開発環境を整えるのに不便な思いをしてきた人からすれば、これほど手軽なものはありません。その動作がどうなっているのかはきちんと知っておく必要があるでしょう。C#/WebAssembly製のアステロイドWebAssemblyの魅力として、JavaScript以外の言語でWebアプリケーションを開発できるという点が挙げられます。LLVMに変換できる言語であればOKらしいですが、通常はC/C++/Rust/Goあたりの言語が使われます。Monoを使うことでC#も利用できます。Zig製のテトリス最近、あらゆるプログラミング言語でテトリスを作る試みが行われいるのでしょうか。Wikiや掲示板が作られていましたが、テトリスもシンプルなルールですし、ゲームとしてのインタフェースの面白さもあります。今回紹介するTetrisはZigというプログラミング言語を使って作られたテトリスです。Webブラウザ上でSwiftを実行WebAssemblyへの注目が集まっており、それ故に様々な試みが行われています。計算処理の高速化、Canvasを書き換えることでゲームに用いたり、JavaScriptを全く書かずにWebアプリケーションも開発できるようになります。そんな中、プログラミング言語をWebブラウザ上で動かそうと言う試みも増えています。${article.post_date_view}${article.post_title}${article.except_content}プレミアムでしか読めない記事が727あります。blockworks。