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

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

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

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

もっと見る

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...

List

  • 2019/02/04

webm-wasm - WebAssemblyでWebM動画を生成

WebAssemblyはネイティブレベルの速度で実行されます。そのため、ローカルのファイルを扱えないという欠点こそあれ、ローカルアプリで行っていた多くの処理がWebブラウザ上で実現できるようになります。今回はそんな例の一つとして、Webブラウザ上でWebM動画を生成するwebm-wasmを紹介します。## webm-w...

List

  • 2019/01/07

sandspiel - 破壊的楽しみもある箱庭シミュレータ

シムシティやライフゲームなどの箱庭ゲームは自分の思い描く世界を作り、疑似体験できるのが魅力です。そして時には災害やアクシデントを発生させて、苦労して築いてきた世界を壊してしまう楽しさもあります。今回紹介するsandspielは規模こそ小さいですが、自然現象のシミュレーションができる箱庭となっています。## sandsp...

None

  • 2019/01/02

php-ext-wasm - PHPでWebAssemblyを実行

WebAssebmlyを学ぶと、単にWebブラウザ上で実行できるバイナリファイル以上の価値が見えてきます。WebAssebmlyを実行できるVMがあれば、他の環境でも同じように動かせるフォーマットとなります。つまりWebブラウザに限らず、幅広い環境で動かせる共通ライブラリになり得るのです。今回はその一端を垣間見えるph...

List

  • 2018/12/21

OpenCV.js WASM Web Worker Webpack Demo - WebAssebmlyによるOpenCV.js実装デモ

Web標準の進化は速く、どんどん新しい技術が出てきます。さらに、それらを使った開発を容易にするフレームワークやビルドライブラリも次々とトレンドが変わります。正直、ついていくのが大変な状況です。しかしそんな中だからこそ開発者は果敢にトライしていかなければなりません。今こそ試し、知見をためられるチャンスと言えるでしょう。今...