ITエンジニア/デザイナ向けにオープンソースを毎日紹介

プログラミング言語 - WebAssemblyの記事一覧

プレミアムユーザー限定記事

MOONGIFTプレミアムは、月額500円の有料サービスです。詳細はこちらから

もっと見る

List

  • 2019/11/13

Kagura - RustだけでWebアプリケーションを開発するフレームワーク

WebAssemblyを開発する際の最も基本的な言語となるのがRustです。WebAssemblyでは元々DOMやネットワーク操作ができませんが、Rustのwasm-bindingによってWebブラウザ側のAPIを実行できるようになりました。その結果、WebAssembly活用の幅が広がったと言えます。Kaguraはそ...

List

  • 2019/11/10

tinysearch - WebAssemblyを使ったWebブラウザ用全文検索

Webサイトには検索機能をつけるのが基本です。その多くの場合、サーバサイドでデータベースを検索し、その結果を返すようになっています。またはコンテンツデータをあらかじめクライアントサイドに持っておいて、JavaScriptで絞り込んだりします。今回紹介するtinysearchはクライアントサイドで検索を行います。特徴的な...

List

  • 2019/10/29

WebAssembly.sh - WebAssembly製のWebターミナル

Webブラウザでも十分ターミナルが実装できるようになってきました。あえて専用のソフトウェアをインストールする必要もなく、すぐにサーバにアクセスできます。公開鍵認証などは多少面倒ですが、十分使えるレベルです。今回紹介するWebAssembly.shもそんなターミナルの一つですが、WebAssemblyで作られており、PW...

None

  • 2019/09/22

go-web-app - GoによるWebAssembly開発を強力にサポート

GoでWebAssembly(WASM)が書けるようになったことで、GoだけでWebアプリケーションを作るトレンドが生まれています。個人的にもこれは大いに期待する流れです。とは言え、開発環境の準備に手間がかかるのは良くありません。そこで使ってみたいのがgo-web-appです。GoによるWASM開発環境をまるっと用意し...

None

  • 2019/09/10

TinyGo - マイコンやWebAssemblyが作れる軽量なGo言語

Goは一つのコードから各種OSで動作するバイナリが生成できます。Raspberry Piでも動くバイナリが生成できるので、IoTなどでも使えます。しかし、それはRaspberry PiでLinuxが動くからに他なりません。マイコンの場合はどうでしょうか。そこで使ってみたいのがTinyGoです。## TinyGoの使い方...

List

  • 2019/09/04

Ruffle - Rust製のFlashプレイヤー

かつてWebコンテンツの多くを担っていたFlash。今はもう廃れて新作を見ることはほとんどなくなってしまいましたが、今なお利用しているサイトは多いです。WebブラウザもFlashプラグインをサポートしなくなっており、このままでは再生すらできなくなってしまいます。そこで作られているのがRuffleです。なんとWebAss...

List

  • 2019/08/28

Artichoke - WebAssemblyで実装されたRuby

Webブラウザ上でJavaScript以外のプログラミング言語を実行したいと言うニーズはとても強くあります。一つはJavaScriptで実行エンジンを開発する方法、またはコンパイルしてJavaScriptを生成する方法などがあります。最近有力なのがWebAssemblyで実行エンジンを実装する方法です。今回紹介するAr...

None

  • 2019/08/28

psyche - コンパイルしてWebAssemblyを生成する専用言語

WebAssemblyはプログラミング言語ではなく、様々な言語から生成されるWebブラウザ上で動作するバイナリフォーマットです。CやC++、Rustで書くのが基本ですが、GoやJava、C#など多彩な言語からWebAssemblyを生成できます。今回紹介するのはpsycheという専用言語で、OCamlで実装されています...

List

  • 2019/08/15

Random World Map Generator - WebAssemblyで高速に3D/2D地図を生成

ゲームなどで地図データを使いたい時は良くあります。シムシティなどのシミュレーションゲームであったり、ローグライクなRPGでも使えます。そういった時の地図はある程度のランダム性があるとより面白いです。今回紹介するRandom World Map GeneratorはWeb上でランダムな地図データを生成してくれるサービスで...

None

  • 2019/07/25

wasm2kt - WebAssemblyファイルをKotlin/Javaに変換

WebAssemblyはWebブラウザ上のみならず、ユニバーサルバイナリとして様々な環境で実行できるようになっています。WebAssemblyはバイナリだけでなく、テキスト形式にもでき、S式として可読性も多少あるフォーマットです。そこで作られたのがwasm2ktです。WebAssemblyを読み込み、kotlinおよび...

List

  • 2019/07/19

boa - Rust製のJavaScript実行エンジン

RustでWebAssemblyを開発している人は多いでしょう。JavaScriptと比べて高速に動作しますが、コンパイルが伴うので動的に動作を変えるのが困難です。例えばユーザにコードを入力してもらって、それをマクロ的に動かしたいということもあるでしょう。そんな時に使ってみたいのがboaです。Rustで作られたJava...

List

  • 2019/07/01

dockerdot - Dockerfileの依存性を可視化

Dockerはまるで魔法のように環境が整います。開発環境を整えるのに不便な思いをしてきた人からすれば、これほど手軽なものはありません。しかし、その動作がどうなっているのかはきちんと知っておく必要があるでしょう。そんなDockerの設定ファイル(Dockerfile)の依存性などをビジュアル化してくれるのがdockerd...

List

  • 2019/06/22

AsteroidsWasm - C#/WebAssembly製のアステロイド

WebAssemblyの魅力として、JavaScript以外の言語でWebアプリケーションを開発できるという点が挙げられます。LLVMに変換できる言語であればOKらしいですが、通常はC/C++/Rust/Goあたりの言語が使われます。Monoを使うことでC#も利用できます。今回紹介するAsteroidsWasmはC#を...

List

  • 2019/06/12

Tetris - Zig製のテトリス

最近、あらゆるプログラミング言語でテトリスを作る試みが行われいるのでしょうか。かつてはWikiや掲示板が作られていましたが、テトリスもシンプルなルールですし、ゲームとしてのインタフェースの面白さもあります。今回紹介するTetrisはZigというプログラミング言語を使って作られたテトリスです。## Tetrisの使い方画...

List

  • 2019/06/02

SwiftWasm - Webブラウザ上でSwiftを実行

WebAssemblyへの注目が集まっており、それ故に様々な試みが行われています。計算処理の高速化、Canvasを書き換えることでゲームに用いたり、JavaScriptを全く書かずにWebアプリケーションも開発できるようになります。そんな中、プログラミング言語をWebブラウザ上で動かそうと言う試みも増えています。今回は...

List

  • 2019/05/07

Guetzli.js - Webブラウザ上でJPEGエンコーディング

デジカメやスマートフォンの普及によってデジタル画像コンテンツが爆発的に増えています。さらに、その画質は年々向上しており、サイズも肥大化しています。撮った写真をそのまま載せると数十MBあるということも少なくありません。そこで必要なのがリサイズであったり品質を変更した画像サイズの縮小処理です。今回はJavaScript/W...

List

  • 2019/04/11

WebAssembly Feature - WebAssemblyの機能が実装されているかチェック

WebAssemblyはモダンなWebブラウザであればすでに利用できる技術ですが、それでもまだ発展途上です。Webブラウザによっては使えないAPIが存在します。単一バイナリで全ての環境で動作する訳ではないようです。そうした際のチェック法としてWebAssembly Featureを紹介します。ある機能について利用できる...

List

  • 2019/04/04

wasm-module - RustのWebAssemblyの中でDOMを扱う

個人的にWebAssemblyには強く期待しており、その中でもGoが有力だと感じています。それはGoのWebAssemblyではDOMやJavaScript APIが使えるからです。駆使すればWebアプリケーション全体のコードをGoで書けるのです。これがRustにもないのが残念でした。しかしwasm-moduleが新し...

List

  • 2019/02/19

run.rb - RubyをWebブラウザ上で実行

Web上でJavaScript以外のプログラミング言語を使いたいという夢は昔から存在します。一時はActionScriptとJava、そしてC#が使えました。しかし今ではJavaScript一色です。しかし私たちにはWebAssemblyがあります。今回はWebAssemblyを使ってWebブラウザ上でRubyを動かす...

List

  • 2019/02/12

WasmWinforms - WebAssemblyでWinformsを再現

WebAssemblyはWebブラウザ上でネイティブコードが動かせるようになり、より大型で複雑なWebアプリケーションが実現できるようになります。とても期待できる一方、DOM操作ができないといった欠点もあります(将来的に解決する予定ですが)。今回はC#からWebAssemblyに変換して作られたWasmWinforms...