はじめに 過去に Vercel に Go サーバーを無料でデプロイできるという記事を書きました。 待望(?) の新シリーズです。 ついに新たなサービスを見つけました。 WebAssembly(Wasm) コンポーネントを使用した Spin というフレームワークがデプロイできる Fermyon Cloud です! 今回は Spin というフレームワークを使って Fermyon Cloud に Go サーバーをデプロイするまでの流れを簡単にご紹介します。 ちなみに、「Wasm を使えば」と記載していますが Wasm の知識はほぼ不要です。 Go が書ければ問題ないです。 Wasm とは Mozilla にドキュメントがあるので以下をご参考いただければと思います。 また、最近 syumai さんが Go の WebAssembly に関して解説くださっていたのでこちらをご参考いただくのもよいかと
// Tac is a small, simple Go program that is an example WASM module for Tarmac. This program will accept a Tarmac // server request, log it, and echo back the payload in reverse. package main import ( "fmt" "github.com/tarmac-project/tarmac/pkg/sdk" ) var tarmac *sdk.Tarmac func main() { var err error // Initialize the Tarmac SDK tarmac, err = sdk.New(sdk.Config{Handler: Handler}) if err != nil {
オンラインイベントで聞かれて、ツイッターにつぶやいたら思った以上に反響があったので、もう少し詳細に書いてみます。 思ったより反響があったまとめ信頼できる暗号ライブラリがある自分が TypeScript より Go のほうが書けるGo の Wasm バイナリサイズを気にする必要がないWebCrypto にない暗号が必要自社の WebRTC SFU において End to End Encryption (E2EE) をブラウザ上で実現するためにはいくつかの壁がありました。 一つは WebCrypto が提供していない暗号を利用したいというものです。 今回 E2EE を実装するにあたり採用した Signal プロトコルでは公開鍵暗号に Curve25519 を採用しています。残念ながら WebCrypto では Curve25519 に対応していません。この時点で「暗号ライブラリをどこからもって
はじめに がんばって書いた書籍が低評価で少々しょんぼりしているあんどうです。まぁ、つい力が入りすぎて袋小路に思い切り突っ込んだ結果抜けられなくなることってあるよね。あるある。そんなわけで今日はできるだけ力を入れずテンション低めにサクッと行きます。 で、GoのWASM。大道の真ん中をまっすぐに歩まれているみなさんはWASMするときはRustかいっそC/C++をemscriptenでってことになると思いますが、私はしょせん路傍の石の下で低評価が目に入らないように丸まっているダンゴムシ。せっかくだからオレはこのGoでWASMを選ぶぜって感じなんですが、ぶっちゃけあれ、めんどくさいすよね。 あ、ちなみに今回の話は「このめんどくささをまるっと解決!」みたいな気持ちのいい話ではなくて、ただただ「めんどくさいよね」っていうだけの話です。あーめんどくさい。 Rustの場合 まず比較のためにRustの例をあ
はじめに WASM (WebAssembly) はブラウザを問わす色々な所で実行が可能になる仮想命令セットおよびアーキテクチャです。 WASM を使う事で、ブラウザでネイティブに近いパフォーマンスのコードを実行できる様になります。既に色々な開発言語から WASM を生成できる様になっています。Go 言語も WASM を生成できる様になっています。 WASM を実行できる処理系 WASM を実行できる処理系としてはブラウザや、wasmtime、Lucet、wasm-micro-runtime、wasmer 等があります。 wasmer は Rust で実装された WebAssembly ランタイムで、Go 言語からは wasmer-go というバインディングから利用できます。 Go 言語の WASM の残念なところ しかし Go 言語の WASM は、Rust や他の言語の様に関数を直接呼び
Googleが中心となってオープンソースで開発されているGo言語は、WindowsやmacOS、Linux、FreeBSD、iOS、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。 そのGo言語のコンパイラが生成するバイナリにWebAssemblyが追加されました。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。 WebAssemblyのサポートは昨年2月から検討がはじまり、先月末に最初のコードがコミットされた状態で、現在も開発が進んでいます。 GOの今後のバージョンアップで正式にWebAssemblyがサポートされる見通しです。 Go言語はサポートするOSやCPUの種類をそれぞれ「GOOS」と「GOARCH」の値で示しています。例えばWindowsのGOOS値は「
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く