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

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

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

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

もっと見る

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

List

  • 2018/12/14

Go wasm - Goで作ったWebAssembly版JavaScript実行環境

WebAssemblyを使うことでWebアプリケーションを高速に実行できるようになります。RustはDOMやネットワークを扱うのが困難ですが、Go1.11以降では対応しています。これによってWebAssemblyを使ったWebアプリケーションの可能性が大きく飛躍しました。そんなGoでJavaScriptを実行できる環境...

List

  • 2018/11/29

Squoosh - 高性能な画像圧縮Webアプリケーション

デジカメやスマートフォンのカメラが性能向上するのに合わせて画像のサイズがどんどん大きくなっています。その結果、バックアップや写真の表示でネットワーク帯域を消費することになってしまいます。これは今後どんどん問題が大きくなっていくでしょう。Appleでは新しい画像フォーマットHEICを作りました。対してGoogleはSqu...

List

  • 2018/11/06

WebPerl - Webブラウザ上でPerl5を実行

WebAssemblyはWebブラウザ上でコンパイルされた実行ファイルを実行できる仕組みです。CやC++で作られたソフトウェアをEmscriptenを使ってWebAssemblyに変換する例も出てきています。今回はその一例ですが、実に変態的です(褒め言葉)。なんとPerl5をWebブラウザ上で実行します。## WebP...

List

  • 2018/10/01

go-wasm-todo-list - Go製。WebAssemblyのTodoアプリ

WebAssemblyを使うことで、高速に動作するWebアプリケーションが開発できます。コンパイルするのでコードを見られることもありませんし、開発自体は多様な言語で行えます。その一例として、go-wasm-todo-listを紹介します。GoからWebAssemblyに展開して作られたTodoリストアプリです。## g...

List

  • 2018/07/22

Vim.Wasm - Webブラウザ上で動作するVim

ただひたすらに恐ろしい…。現在ローカルアプリケーションが次々にWebアプリケーション化しています。JavaScriptが高機能化、高性能化するのに伴ったものですが、さらにそれを促進しそうなのがEmscriptenです。C言語をJavaScript化するすごい技術です。そんなEmscriptenを活用し、VimをWebA...

List

  • 2018/06/15

PIB - PHPをWebAssembly化してWebブラウザ上で実行

WebAssemblyはCやC++、Rustなどの言語で開発できます(他にもLLVMを生成する言語であれば何でも良いのですが)。つまり元々Cで開発されたソフトウェアはWebAssembly化できる可能性(あくまでも可能性)がある訳です。そんな無謀とも言える可能性を感じさせるのがPIBです。なんとPHPをWebブラウザ上...