{"id":8317,"date":"2020-06-24T08:35:43","date_gmt":"2020-06-23T23:35:43","guid":{"rendered":"https:\/\/its-more.jp\/ja_jp\/?p=8317"},"modified":"2020-06-25T02:13:08","modified_gmt":"2020-06-24T17:13:08","slug":"go%e3%81%a7webassembly","status":"publish","type":"post","link":"https:\/\/its-more.jp\/ja_jp\/?p=8317","title":{"rendered":"Go\u3067WebAssembly"},"content":{"rendered":"\n<p>\u958b\u767a\uff1aextension \u3092 HTML\u3001CSS\u3001JavaScript \u3060\u3051\u3067\u66f8\u304f\u306e\u306f\u3084\u306f\u308a\u53b3\u3057\u3044\u306e\u3067\u3001\u3084\u306f\u308a\u8907\u96d1\u306a\u51e6\u7406\u306f\u73fe\u5730\u306e\u8a00\u8a9e\u3067\u66f8\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u9069\u6750\u9069\u6240\u3067\u884c\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1aWebAssembly\u3068\u3044\u3046\u3084\u3064\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<h2>WebAssembly\u3063\u3066<\/h2>\n\n\n\n<p>\u958b\u767a\uff1aWiki\u3067WebAssembly\u3092\u691c\u7d22\u2026<\/p>\n\n\n\n<p>\u793e\u9577\uff1aWikipedia\u306e\u5b9a\u671f\u5bc4\u4ed8\u3063\u3066\u6700\u4f4e\u304c\u6708300\u5186\u307f\u305f\u3044\u3067\u3059\u306d\u3002\u3046\u3061\u306b\u306f\u6577\u5c45\u304c\u9ad8\u3044\u2026<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u30b3\u30fc\u30d2\u30fc\u4e00\u676f\u3092\u8efd\u3093\u3058\u3066\u308b\u611f\u3058\u3067\u3059\u3002\u79c1\u306a\u3093\u3066\u5b66\u751f\u6642\u4ee3\u306f\u30b3\u30fc\u30d2\u30fc\u3068\u304b\u9ad8\u5dba\u306e\u82b1\u3068\u3044\u3046\u304b\u5929\u4e0a\u754c\u306e\u4eba\u306e\u98f2\u307f\u7269\u3067\u3057\u305f\u3088\u3002\u4eca\u3060\u3063\u3066\u305d\u308c\u3067\u30af\u30e9\u30a6\u30c9\u306e\u4eee\u60f3\u30de\u30b7\u30f3\u304c1\u30f6\u6708\u52d5\u304f\u3093\u3067\u3059\u304c\u2026\u3000AWS\u3067$3.5\/month\u306e\u3084\u3064\u3092\u30dd\u30b3\u30dd\u30b3\u7acb\u3066\u3066\u307f\u3088\u3046\u3068\u601d\u3063\u3066\u308b\u306e\u3067\u3059\u304c\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\"><a href=\"https:\/\/ja.wikipedia.org\/wiki\/WebAssembly\">https:\/\/ja.wikipedia.org\/wiki\/WebAssembly<\/a><br><br>WebAssembly\u306f\u3001<span class=\"has-inline-color has-vivid-cyan-blue-color\">\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30b5\u30a4\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u3068\u3057\u3066\u52d5\u4f5c<\/span>\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\uff08\u4f4e\u6c34\u6e96\u8a00\u8a9e\uff09\u3067\u3042\u308b\u3002wasm\u3068\u3082\u79f0\u3055\u308c\u3066\u304a\u308a\u3001\u30d6\u30e9\u30a6\u30b6\u4e0a\u3067\u30d0\u30a4\u30ca\u30ea\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u306e\u5f62\u3067\u5b9f\u884c\u53ef\u80fd\u3067\u3042\u308b\u3053\u3068\u3092\u7279\u5fb4\u3068\u3059\u308b[2]\u30022017\u5e74\u73fe\u5728\u958b\u767a\u304c\u9032\u3081\u3089\u308c\u3066\u304a\u308a\u3001\u6700\u521d\u306e\u76ee\u6a19\u3068\u3057\u3066C\u3068C++\u304b\u3089\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u3053\u3068\u3092\u76ee\u6307\u3057\u3066\u3044\u308b[3]\u4ed6\u3001Rust\u304c\u30d0\u30fc\u30b8\u30e7\u30f31.14\u4ee5\u964d\u3067[4]\u3001<span class=\"has-inline-color has-vivid-cyan-blue-color\">Go\u304c\u30d0\u30fc\u30b8\u30e7\u30f31.11\u4ee5\u964d<\/span>\u3067[5]\u3001Kotlin\/Native\u304c\u30d0\u30fc\u30b8\u30e7\u30f30.4\u4ee5\u964d\u3067[6]\u3067\u5bfe\u5fdc\u3059\u308b\u306a\u3069\u3001\u4ed6\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u306e\u30b5\u30dd\u30fc\u30c8\u3082\u9032\u3081\u3089\u308c\u3066\u3044\u308b\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a <a href=\"https:\/\/blog.golang.org\/go1.11\">Go \u3067\u3082\u4f7f\u3048\u308b<\/a>\u3068\u3044\u3046\u306e\u304c\u3068\u3066\u3082\u9b45\u529b\u3060\u3068\u601d\u3044\u307e\u3059\u3002\u9762\u767d\u3044\u306e\u304cWiki\u306e\u4e2d\u306e\u3053\u306e\u90e8\u5206\u3002<\/p>\n\n\n\n<p class=\"has-text-color has-background has-small-font-size has-very-dark-gray-color has-very-light-gray-background-color\">WebAssembly\u306f\u30dd\u30fc\u30bf\u30d6\u30eb\u306a<a href=\"https:\/\/ja.wikipedia.org\/wiki\/%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%83%9E%E3%82%B7%E3%83%B3\">\u30b9\u30bf\u30c3\u30af\u30de\u30b7\u30f3<\/a><sup><a href=\"https:\/\/ja.wikipedia.org\/wiki\/WebAssembly#cite_note-7\">[7]<\/a><\/sup>\u3067\u3042\u308a\u3001\u65e2\u5b58\u306e\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3067\u5e83\u304f\u7528\u3044\u3089\u308c\u3066\u3044\u308b<a href=\"https:\/\/ja.wikipedia.org\/wiki\/JavaScript\">JavaScript<\/a>\u3068\u6bd4\u3079\u3001\u69cb\u6587\u89e3\u6790\u3068\u5b9f\u884c\u304c\u9ad8\u901f\u306b\u306a\u308b\u3088\u3046\u8a2d\u8a08\u3055\u308c\u3066\u3044\u308b<sup><a href=\"https:\/\/ja.wikipedia.org\/wiki\/WebAssembly#cite_note-github.com-3\">[3]<\/a><\/sup>\u3002<br>...<br>\u5185\u90e8\u7684\u306b\u306f\u3001wasm\u30b3\u30f3\u30d1\u30a4\u30e9\u30b7\u30b9\u30c6\u30e0\u306f\u4e2d\u9593\u30b3\u30fc\u30c9\u3092\u6271\u3046\u305f\u3081\u306b<a href=\"https:\/\/ja.wikipedia.org\/wiki\/S%E5%BC%8F\">S\u5f0f<\/a>\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1aS\u5f0f\uff0140\u5e74\u4ee5\u4e0a\u30bf\u30a4\u30e0\u30b9\u30ea\u30c3\u30d7\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1aGo\u3067\u306e\u30b5\u30dd\u30fc\u30c8\u306f Go 1.11\u3001 2018-08-24 \u306e\u30d6\u30ed\u30b0\u3067\u30a2\u30ca\u30a6\u30f3\u30b9\u3055\u308c\u3066\u307e\u3059\u3002\u7d042\u5e74\u524d\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\"><a href=\"https:\/\/blog.golang.org\/go1.11\">https:\/\/blog.golang.org\/go1.11<\/a><br><br>Go 1.11 also adds an experimental port to\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/golang.org\/doc\/go1.11#wasm\" target=\"_blank\">WebAssembly<\/a>\u00a0(<code>js\/wasm<\/code>). This allows programmers to compile Go programs to a binary format compatible with four major web browsers. You can read more about WebAssembly (abbreviated \u201cWasm\u201d) at\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/webassembly.org\/\" target=\"_blank\">webassembly.org<\/a>\u00a0and see\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/golang.org\/wiki\/WebAssembly\" target=\"_blank\">this wiki page<\/a>\u00a0on how to get started with using Wasm with Go. <\/p>\n\n\n\n<p>\u57fa\u76e4\uff1b\u300cfour major web browser\u300d\u3063\u3066\u3001Safari \u304c\u4ef2\u9593\u5916\u308c\u306a\u3093\u3067\u3057\u3087\u3046\u304b\u306d\uff08\u7b11\uff09<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u79c1\u306f\u6700\u8fd1\u3001Safari \u306b\u306f Safari \u306a\u308a\u306e\u826f\u3044\u70b9\u3001\u9762\u767d\u3044\u70b9\u3082\u3042\u308b\u3068\u306f\u601d\u3063\u3066\u308b\u3093\u3067\u3059\u3051\u3069\u306d\u3002\u3067\u3082\u552f\u6211\u72ec\u5c0a\u306eApple\u793e\u88fd\u3067\u3059\u304b\u3089\u306d\u3048\u2026<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\"><a href=\"https:\/\/golang.org\/doc\/go1.11#wasm\">https:\/\/golang.org\/doc\/go1.11#wasm<\/a><br><br>WebAssembly<br><br>Go 1.11 adds an experimental port to\u00a0<a href=\"https:\/\/webassembly.org\/\">WebAssembly<\/a>\u00a0(<code>js\/wasm<\/code>).<br><br>Go programs currently compile to one WebAssembly module that includes the Go runtime for goroutine scheduling, garbage collection, maps, etc. As a result, the resulting size is at minimum around 2 MB, or 500 KB compressed. Go programs can call into JavaScript using the new experimental\u00a0<a href=\"https:\/\/golang.org\/pkg\/syscall\/js\/\"><code>syscall\/js<\/code><\/a>\u00a0package. Binary size and interop with other languages has not yet been a priority but may be addressed in future releases.<\/p>\n\n\n\n<p>\u958b\u767a\uff1aGo\u306e\u30d0\u30a4\u30ca\u30ea\u304c\u3067\u304b\u3044\u3068\u3044\u3046\u306e\u306f\u5b9a\u756a\u3067\u3059\u304c\u3001\u5225\u306b2M\u7a0b\u5ea6\u306a\u3089\u3061\u3087\u3063\u3068\u3057\u305f\u753b\u50cf\u7a0b\u5ea6\u3060\u304b\u3089\u3001\u8ee2\u9001\u91cf\u3068\u3057\u3066\u306f\u6c17\u306b\u306a\u3089\u306a\u3044\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">As a result of the addition of the new\u00a0<code>GOOS<\/code>\u00a0value \"<code>js<\/code>\" and\u00a0<code>GOARCH<\/code>\u00a0value \"<code>wasm<\/code>\", Go files named\u00a0<code>*_js.go<\/code>\u00a0or\u00a0<code>*_wasm.go<\/code>\u00a0will now be\u00a0<a href=\"https:\/\/golang.org\/pkg\/go\/build\/#hdr-Build_Constraints\">ignored by Go tools<\/a>\u00a0except when those GOOS\/GOARCH values are being used. If you have existing filenames matching those patterns, you will need to rename them.<br><br>More information can be found on the\u00a0<a href=\"https:\/\/golang.org\/wiki\/WebAssembly\">WebAssembly wiki page<\/a>.<\/p>\n\n\n\n<h2>\u8ab0\u3067\u3082\u6700\u521d\u306f Hello world<\/h2>\n\n\n\n<p>\u958b\u767a\uff1a\u3067\u305d\u306e wikipage \u306b\u304a\u5f85\u3061\u304b\u306d\u306e Hello world \u304c\u3042\u308b\u306e\u3067\u3001\u4eca\u65e5\u306f\u305d\u308c\u3092\u3084\u3063\u3066\u307f\u307e\u3059\u3002\u307e\u305a\u3001\u4f7f\u7528\u3059\u308b\u306e\u306f\u304a\u306a\u3058\u307f\u306e\u3053\u308c\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">% cat > hello.go\npackage main\nimport \"fmt\"\nfunc main() {\n  fmt.Println(\"Hello, WebAssembly!\")\n}<\/pre>\n\n\n\n<p>\u958b\u767a\uff1a\u3053\u3044\u3064\u3092 WebAssembly \u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-text-color has-background has-small-font-size has-very-light-gray-color has-vivid-cyan-blue-background-color\">Set\u00a0<code>GOOS=js<\/code>\u00a0and\u00a0<code>GOARCH=wasm<\/code>\u00a0environment variables to compile for WebAssembly:<br><br>$ GOOS=js GOARCH=wasm go build -o main.wasm<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3053\u308c\u3001\u3061\u3087\u3063\u3068\u610f\u5473\u304c\u308f\u304b\u3089\u306a\u3044\u3093\u3067\u3059\u304c\u3001\u74b0\u5883\u5909\u6570\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u308b\u3063\u3066\u610f\u5473\u3067\u3059\u304b\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305d\u3046\u3089\u3057\u3044\u3067\u3059\u3002bash \u304b\u3089\u306e\u4ed5\u69d8\u306a\u3093\u3067\u3059\u304b\u306d\uff1f<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">% XX=a printenv XX<br>a<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3042\u3068\u3001go \u30d5\u30a1\u30a4\u30eb\u3092\u6307\u5b9a\u3057\u306a\u3044\u3068\u3001\u30ab\u30ec\u30f3\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e .go \u3092\u52dd\u624b\u306b\u63a2\u3057\u3066\u3084\u3063\u3066\u304f\u308c\u308b\u3088\u3046\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u5fb9\u5e95\u3057\u3066\u624b\u9593\u3092\u7701\u304f\u6c17\u6e80\u3005\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3067\u3001build \u3067 main.wasm \u304c\u51fa\u6765\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% ls -l<br>total 4432<br>-rw-r--r-- 1 ysato staff 78 Jun 24 09:04 hello.go<br>-rwxr-xr-x 1 ysato staff 2262220 Jun 24 09:17 main.wasm<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u5642\u901a\u308a2MB\u8d85 \ud83d\ude42<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3042\u3068\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u306f main \u30d1\u30c3\u30b1\u30fc\u30b8\u4e00\u3064\u306b\u3057\u3066\u306d\u3001\u3068\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">Note that you can only compile main packages. Otherwise, you will get an object file that cannot be run in WebAssembly. If you have a package that you want to be able to use with WebAssembly, convert it to a main package and build a binary.<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u305d\u308c\u3063\u3066 go build \u3067\u81ea\u52d5\u7684\u306b\u306f\u51fa\u6765\u306a\u3044\u3093\u3067\u3059\u304b\u306d\u3002\u305f\u3060\u9762\u5012\u3060\u3063\u305f\u306e\u304b\u306a\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3055\u3089\u306b\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306b\u8a00\u308f\u308c\u308b\u304c\u307e\u307e\u306b\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">% cp \"$(go env GOROOT)\/misc\/wasm\/wasm_exec.js\" .\n\n% cat index.html\n&lt;html>\n &lt;head>\n  &lt;meta charset=\"utf-8\"\/>\n  &lt;script src=\"wasm_exec.js\">&lt;\/script>\n  &lt;script>\n   const go = new Go();\n   WebAssembly.instantiateStreaming(\n    fetch(\"main.wasm\"),go.importObject).\n     then( (result) => { go.run(result.instance); } );\n  &lt;\/script>\n &lt;\/head>\n &lt;body>&lt;\/body>\n&lt;\/html><\/pre>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3088\u304f\u308f\u304b\u3089\u306a\u3044\u3051\u3069\u30012\u3064\u76ee\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u306fmain.wasm \u3092\u30d5\u30a7\u30c3\u30c1\u3057\u3066\u5b9f\u884c\u3059\u308b\u3001\u3068\u3044\u3046\u3053\u3068\u306e\u3088\u3046\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u6e96\u5099OK\u3002\u3053\u3046\u3044\u3046\u4e8b\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"523\" height=\"171\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.48.00.png\" alt=\"\" class=\"wp-image-8335\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.48.00.png 523w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.48.00-300x98.png 300w\" sizes=\"(max-width: 523px) 100vw, 523px\" \/><\/figure><\/div>\n\n\n\n<h2>FILE URL \u306f\u901a\u3089\u306a\u304b\u3063\u305f<\/h2>\n\n\n\n<p>\u958b\u767a\uff1a\u3067\u3001\u3053\u306e index.html \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u2026<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u771f\u3063\u767d\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"777\" height=\"487\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.55.31.png\" alt=\"\" class=\"wp-image-8336\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.55.31.png 777w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.55.31-300x188.png 300w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.55.31-768x481.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1aHTML\u3092\u30b3\u30d4\u30da\u9593\u9055\u3048\u305f\u304b\u306a\uff1f<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"771\" height=\"487\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.56.48.png\" alt=\"\" class=\"wp-image-8338\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.56.48.png 771w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.56.48-300x189.png 300w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.56.48-768x485.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u57fa\u76e4\uff1a\u554f\u984c\u306a\u3055\u305d\u3046\u306a\u3002\u30a4\u30f3\u30b9\u30da\u30af\u30bf\u3067\u306f\uff1f<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"768\" height=\"487\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.57.55.png\" alt=\"\" class=\"wp-image-8339\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.57.55.png 768w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-12.57.55-300x190.png 300w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1a\u3048\uff1f<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\"><span class=\"has-inline-color has-luminous-vivid-orange-color\">Fetch API cannot load<\/span> file:\/\/\/Users\/ysato\/Desktop\/GoWasm\/main.wasm. <span class=\"has-inline-color has-luminous-vivid-orange-color\">URL scheme must be \"http\" or \"https\" for CORS request.<\/span><\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3042\u308c\u307e\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u306a\u3093\u3067 file scheme \u3058\u3083\u3044\u304b\u3093\u306e\u3067\u3059\u304b\u306d\uff1fHTTP\u30b5\u30fc\u30d0\u3063\u3066\u8a00\u3063\u3066\u3082\u305f\u3060\u30d5\u30a1\u30a4\u30eb\u3092\u63d0\u4f9b\u3057\u3066\u308b\u3060\u3051\u3060\u308d\u3046\u3057\u3001HTTP\u3088\u308a\u306f\u76f4\u63a5\u898b\u3048\u308bFILE\u306e\u307b\u3046\u304c\u7d20\u6027\u304c\u77e5\u308c\u3066\u308b\u3057\u9ad8\u901f\u3060\u3068\u601d\u3046\u306e\u3067\u3059\u304c\u2026\u3000\u81ea\u5206\u81ea\u8eab\u3088\u308a\u9060\u304f\u306e\u4ed6\u4eba\u3092\u4fe1\u7528\u3059\u308b\u3063\u3066\u3069\u3046\u3044\u3046\u4e8b\u3060\u308d\u3046\u3002\u3061\u3087\u3063\u3068\u304c\u3063\u304b\u308a\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u30b5\u30fc\u30d0\u540d\u306e\u90e8\u5206\u3092\u4f55\u304b\u306b\u4f7f\u3063\u3066\u3044\u308b\u3068\u304b\uff1f<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u30d6\u30e9\u30a6\u30b6\u81ea\u8eab\u306bHTTP\u30b5\u30fc\u30d0\u306e\u30b3\u30fc\u30c9\u3092\u542b\u3093\u3067\u3044\u3066fork\u3059\u308b\u3060\u3051\u3067\u3044\u3044\u3093\u3058\u3083\u306a\u3044\u304b\u306a\u3041\u3002<\/p>\n\n\n\n<h2>DeleGate\u306f\u901a\u3089\u306a\u304b\u3063\u305f<\/h2>\n\n\n\n<p>\u958b\u767a\uff1a\u6c17\u3092\u3068\u308a\u306a\u304a\u3057\u3066\u30b5\u30fc\u30d0\u7d4c\u7531\u306b\u3057\u307e\u3059\u3002\u3068\u308a\u3042\u3048\u305a\u52dd\u624b\u77e5\u3063\u305f\u308b DeleGate \u3067\u3061\u3083\u3061\u3083\u3063\u3068\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">% delegated -fv -P9999 SERVER=http MOUNT=\"\/* $PWD\/*\"<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3067\u3069\u3046\u304b\u306a\uff1f<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3075\u305f\u305f\u3073\u771f\u3063\u767d\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u4f55\u304c\u3054\u4e0d\u6e80\u306a\u306e\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"768\" height=\"487\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.13.08.png\" alt=\"\" class=\"wp-image-8348\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.13.08.png 768w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.13.08-300x190.png 300w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3042\u3042\u3001MIME \u30bf\u30a4\u30d7 \u3092application\/wasm \u306b\u3057\u308d\u3068\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305d\u308c\u3058\u3083DeleGate\u306b\u30d5\u30a1\u30a4\u30eb\u578b\u3092\u6559\u3048\u307e\u3057\u3087\u3046\u3002\u771f\u3093\u4e2d\u3042\u305f\u308a\u306f Gopher \u7528\u306e\u5b9a\u7fa9\u3060\u3063\u305f\u308a\u3059\u308b\u5e74\u4ee3\u7269\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">FILETYPE=\".wasm:9:BIN:binary:application\/wasm\"<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3053\u308c\u3067\u3069\u3046\u304b\u306a\uff1f<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"768\" height=\"654\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.33.20.png\" alt=\"\" class=\"wp-image-8355\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.33.20.png 768w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.33.20-300x255.png 300w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1a\u3048\uff1f\u624b\u3067\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3082\u3053\u3046\u8fd4\u3063\u3066\u304d\u3066\u308b\u306e\u306b\u2026<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">HTTP\/1.0 200 OK<br>Date: Wed, 24 Jun 2020 04:24:23 GMT<br>Server: DeleGate\/11.0.2<br>DeleGate-Ver: 11.0.2 (delay=0)<br>MIME-Version: 1.0<br>Content-Type: application\/wasm<br>Content-Length: 2262220<br>Last-Modified: Wed, 24 Jun 2020 00:17:07 GMT<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3053\u3053\u306f\u3068\u308a\u3042\u3048\u305a\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306b\u5f93\u3044\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2>\u795dHello World!<\/h2>\n\n\n\n<p>\u958b\u767a\uff1a\u4ef0\u305b\u306e\u3068\u304a\u308a goexec \u3067\u3068\u2026<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># install goexec: go get -u github.com\/shurcooL\/goexec\n$ goexec 'http.ListenAndServe(`:8080`, http.FileServer(http.Dir(`.`)))'<\/pre>\n\n\n\n<p>\u57fa\u76e4\uff1ago get \u5e30\u3063\u3066\u304d\u307e\u305b\u3093\u306d\u3002\u306a\u3093\u304b\u30d7\u30ed\u30b0\u30ec\u30b9\u5831\u544a\u304c\u307b\u3057\u3044\u3068\u3053\u308d\u3067\u3059\u3002\u3042\u3001\u7d42\u308f\u3063\u305f\u3002\u6570\u5206\u304b\u304b\u3063\u305f\u3088\u3046\u306a\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1agoexec \u3063\u3068\u3002\u3042\u308c\uff1fPATH\u304c\u901a\u3063\u3066\u306a\u3044\u3067\u3059\u306d\u3002export PATH=$PATH:$HOME\/go\/bin\u3002\u3053\u308c\u3067\u3044\u304b\u304c\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"768\" height=\"534\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.45.16.png\" alt=\"\" class=\"wp-image-8356\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.45.16.png 768w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.45.16-300x209.png 300w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u57fa\u76e4\uff1a\u901a\u308a\u307e\u3057\u305f\u306d\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"352\" height=\"101\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.46.41.png\" alt=\"\" class=\"wp-image-8357\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.46.41.png 352w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-13.46.41-300x86.png 300w\" sizes=\"(max-width: 352px) 100vw, 352px\" \/><\/figure><\/div>\n\n\n\n<p>\u57fa\u76e4\uff1aGo\u306eHTTP\u306f\u4f55\u3092\u8fd4\u3057\u3066\u308b\u3093\u3067\u3057\u3087\u3046\u306d\uff1f<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">HTTP\/1.0 200 OK<br>Accept-Ranges: bytes<br>Content-Length: 2262220<br>Content-Type: application\/wasm<br>Last-Modified: Wed, 24 Jun 2020 00:17:07 GMT<br>Date: Wed, 24 Jun 2020 04:48:41 GMT<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u79c1\u306f\u9055\u3044\u304c\u308f\u304b\u3089\u306a\u3044\u7537\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1aAccept-Ranges \u306e\u6709\u7121\u3067\u5f15\u3063\u304b\u304b\u3063\u3066\u308b\u3068\u304b\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u307e\u3042\u3001\u3042\u3068\u3067\u8abf\u3079\u307e\u3059\u3002\u3061\u3087\u3063\u3068\u30b7\u30e9\u30b1\u3061\u3083\u3044\u307e\u3057\u305f\u3002\u30d6\u30ec\u30fc\u30af\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p class=\"has-text-align-center\">\uff0a\u3000\uff0a\u3000\uff0a<\/p>\n\n\n\n<h2>HomeBrew\u3067\u9053\u8349<\/h2>\n\n\n\n<p>\u57fa\u76e4\uff1a\u5f15\u304d\u7d9a\u304d Node.js \u306e\u30b9\u30b9\u30e1\u304c\u3064\u3044\u3066\u307e\u3059\u304c\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3044\u3084\u306f\u3084\u3053\u308c\u3060\u3051\u7c21\u6f54\u306a\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u3067\u3001\u304a\u307e\u3051\u307e\u3067\u3064\u3044\u3061\u3083\u3046\u3002Go\u306e\u30bb\u30f3\u30b9\u306f\u7d20\u6674\u3089\u3057\u3044\u3067\u3059\u3002\u3069\u308c\u3069\u308c\u2026<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% GOOS=js GOARCH=wasm go run -exec=\"$(go env GOROOT)\/misc\/wasm\/go_js_wasm_exec\" .<br>\/usr\/local\/go\/misc\/wasm\/go_js_wasm_exec: line 14: exec: <span class=\"has-inline-color has-luminous-vivid-orange-color\">node: not found<\/span><br>exit status 127<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1aNode \u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u306a\u3044\u3063\u3066\u3053\u3068\u3067\u3059\u304b\u306d\u3002macos node install \u3067\u691c\u7d22\u2026 <a href=\"https:\/\/brew.sh\">Homebrew<\/a> \u3068\u3044\u3046\u306e\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3088\u3046\u3067\u3059\u3002apt \u307f\u305f\u3044\u306a\u3084\u3064\u3067\u3059\u304b\u306d\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u65b9\u6cd5\u2026<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/master\/install.sh)\"<\/pre>\n\n\n\n<p>\u958b\u767a\uff1acurl \u306f\u5165\u3063\u3066\u308b\u304b\u3089\u3053\u306e\u307e\u307e\u3067\u30a4\u30b1\u308b\u3057\u3087\u3046\u3002\u30b3\u30d4\u30da\u3057\u3066Go\uff01<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"609\" height=\"858\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-14.58.59.png\" alt=\"\" class=\"wp-image-8386\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-14.58.59.png 609w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-14.58.59-213x300.png 213w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1a\u3046\u30fc\u3093\u3001\u306a\u3093\u3067$HOME\u306e\u4e0b\u306b\u4f5c\u3063\u3066\u304f\u308c\u306a\u3044\u306e\u304b\u306a\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\/usr\/local \u306e\u4e0b\u3060\u3057\u3001\u3044\u3044\u3093\u3058\u3083\u306a\u3044\u3067\u3059\u304b\uff1f<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3046\u30fc\u3093\u3001\u304a\u305d\u3089\u304fcurl\u306e\u51fa\u529b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5909\u3048\u308c\u3070\u30a4\u30b1\u308b\u306e\u3067\u306f\u2026 grep local\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># On macOS, this script installs to \/usr\/local only.\n  HOMEBREW_PREFIX=\"\/usr\/local\"\n  HOMEBREW_REPOSITORY=\"\/usr\/local\/Homebrew\"<\/code><\/pre>\n\n\n\n<p> \u958b\u767a\uff1a\u307b\u3089\u306d\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3069\u3046\u3044\u3046\u30b9\u30af\u30ea\u30d7\u30c8\u306a\u3093\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\"># On macOS, this script installs to \/usr\/local only.<br># On Linux, it installs to \/home\/linuxbrew\/.linuxbrew if you have sudo access<br># and ~\/.linuxbrew otherwise.<br># <span class=\"has-inline-color has-luminous-vivid-orange-color\">To install elsewhere (which is unsupported)<\/span><br># you can untar https:\/\/github.com\/Homebrew\/brew\/tarball\/master<br># anywhere you like.<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1aMac\u3067\u306f\u9078\u629e\u4e0d\u53ef\u3001Linux\u3067\u3082unsuppoted\u3067\u3059\u3063\u3066\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305d\u3046\u3067\u3059\u304b\u3002\/usr\/local \u3092\u98f2\u307f\u307e\u3059\u3002\u6bd2\u307e\u3093\u3058\u3085\u3046\u3067\u3082\u3042\u308b\u307e\u3044\u3002RETURN \u3092\u307d\u3061\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u306a\u3093\u304b\u3059\u3054\u3044\u3084\u3063\u3066\u307e\u3059\u304c\u2026\u3000\u3042\u3001\u7d42\u308f\u3063\u305f\u3002\u6570\u5206\u304c\u304b\u308a\u3067\u3057\u305f\u306d\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"629\" height=\"260\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.15.28.png\" alt=\"\" class=\"wp-image-8389\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.15.28.png 629w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.15.28-300x124.png 300w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1a\u3067\u306f\u518d\u30c1\u30e3\u30ec\u30f3\u30b8\uff01\u3042\u308c\uff1f\u3042\u3042\u3001brew \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3060\u3051\u3067\u3001node \u306f\u307e\u3060\u3060\u3063\u305f\uff08\u7b11\uff09\u3002\u3067\u306f\u3001brew install nodebrew\u2026<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"663\" height=\"360\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.23.03.png\" alt=\"\" class=\"wp-image-8393\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.23.03.png 663w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.23.03-300x163.png 300w\" sizes=\"(max-width: 663px) 100vw, 663px\" \/><\/figure>\n\n\n\n<p>\u958b\u767a\uff1a\u4f55\u3060\u30b3\u30ea\u30a2\uff1f<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a<a href=\"https:\/\/nodejs.org\/ja\/\">Node.js<\/a>\u306e\u30b5\u30a4\u30c8\u306b\u884c\u3063\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"919\" height=\"573\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.32.41.png\" alt=\"\" class=\"wp-image-8394\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.32.41.png 919w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.32.41-300x187.png 300w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.32.41-768x479.png 768w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1a\u306a\u3093\u3060\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3042\u308b\u3093\u3058\u3083\u306a\u3044\u3002\u3058\u3083\u3001\u63a8\u5968\u306eLTS\u3092\u3070\u3002\u3077\u3061\u3002\u3077\u3061\u3063\u3068\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"732\" height=\"550\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.33.35.png\" alt=\"\" class=\"wp-image-8395\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.33.35.png 732w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.33.35-300x225.png 300w\" sizes=\"(max-width: 732px) 100vw, 732px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1a\u304a\u30fc\u3044\u3048\u30fc\u3059\u3001\u3042\u3044\u30a2\u30b0\u30ea\u30fc\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"734\" height=\"550\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.38.34.png\" alt=\"\" class=\"wp-image-8398\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.38.34.png 734w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.38.34-300x225.png 300w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/><\/figure><\/div>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3053\u308c\u3001\u30a2\u30de\u30be\u30f3\u30c9\u30e9\u30a4\u30d6\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u3089\u9762\u767d\u305d\u3046\u3067\u3059\u306d\uff08\u7b11\uff09<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u306f\u3044\u7d42\u4e86\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"734\" height=\"550\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.40.15.png\" alt=\"\" class=\"wp-image-8399\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.40.15.png 734w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-15.40.15-300x225.png 300w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/><\/figure><\/div>\n\n\n\n<p>\u958b\u767a\uff1a\u3067\u4e00\u5fdc\u78ba\u8a8d\u3002<\/p>\n\n\n\n<p class=\"has-text-color has-background has-small-font-size has-very-dark-gray-color has-very-light-gray-background-color\">MacMini% which node<br>\/usr\/local\/bin\/node<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1aOK\u3002<\/p>\n\n\n\n<h2>Node \u3067WebAssmbly\u3092 Go<\/h2>\n\n\n\n<p>\u958b\u767a\uff1a\u3067\u306f\u304a\u3082\u3080\u308d\u306b\u518d\u30c1\u30e3\u30ec\u30f3\u30b8\u2026<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-pale-cyan-blue-background-color\">$ time GOOS=js GOARCH=wasm go run -exec=\"$(go env GOROOT)\/misc\/wasm\/go_js_wasm_exec\" .<br>Hello, WebAssembly!<br><br>real 0m0.656s<br>user 0m1.650s<br>sys 0m0.159s<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u304f\u3063\u305d\u91cd\u3044\u3067\u3059\u306d\uff08\u7b11\uff09<\/p>\n\n\n\n<p>\u958b\u767a\uff1areal \u3088\u308a CPU \u304c\u591a\u3044\u3063\u3066\u3069\u3046\u3044\u3046\u3053\u3068\uff1f\u3042\u3042\u3001\u30de\u30eb\u30c1\u30b3\u30a2\u3067\u306e\u30e6\u30fc\u30b6\u6642\u9593\u306e\u548c\u304b\u306a\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-pale-cyan-blue-background-color\">MacMini% time GOOS=js GOARCH=wasm go run -exec=\"$(go env GOROOT)\/misc\/wasm\/go_js_wasm_exec\" .<br>Hello, WebAssembly!<br>GOOS=js GOARCH=wasm go run -exec=\"$(go env GOROOT)\/misc\/wasm\/go_js_wasm_exec\"<br>1.66s user 0.31s system <strong><span class=\"has-inline-color has-luminous-vivid-orange-color\">189% cpu<\/span><\/strong> 1.036 total<br>MacMini%<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u305d\u306e\u3088\u3046\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u307e\u3042\u3001\u30d6\u30e9\u30a6\u30b6\u7121\u3057\u3001\u30b5\u30fc\u30d0\u7121\u3057\u3067\u30c6\u30b9\u30c8\u3067\u304d\u308b\u3093\u3067\u3001\u591a\u5c11\u9045\u304f\u3066\u3082OK\u3058\u3083\u306a\u3044\u3067\u3059\u304b\u306d\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u305d\u308c\u306b\u3057\u3066\u3082\u3001\u672c\u984c\u3067\u7121\u3044\u3068\u3053\u308d\u306b\u3070\u304b\u308a\u6642\u9593\u3092\u53d6\u3089\u308c\u307e\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u6700\u521d\u3060\u304b\u3089\u3057\u304b\u305f\u304c\u7121\u3044\u3067\u3059\u3002\u30d6\u30ec\u30fc\u30af\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p class=\"has-text-align-center\">\uff0a\u3000\uff0a\u3000\uff0a<\/p>\n\n\n\n<h2>Go\u3067\u30b7\u30b9\u30c6\u30e0\u30b3\u30fc\u30eb<\/h2>\n\n\n\n<p>\u958b\u767a\uff1a\u3055\u308c\u305d\u308c\u3067\u3001\u672c\u984c\u306e SandBox \u3067\u4f55\u304c\u3067\u304d\u308b\u304b\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u30b7\u30b9\u30c6\u30e0\u30b3\u30fc\u30eb\u3068\u304b\u307f\u3093\u306a\u30c8\u30e9\u30c3\u30d7\u3055\u308c\u3066\u308b\u3093\u3067\u3059\u304b\u306d\uff1f<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u307e\u305a\u306f uptime \u3068\u304b top \u7684\u306a\u4e8b\u3057\u305f\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3042\u308c\uff1f\u305d\u3046\u3044\u3048\u3070\u4eca\u65e5\u5348\u524d\u4e2d\u306bIC\u30ab\u30fc\u30c9\u306e\u30ea\u30fc\u30c0\u30e9\u30a4\u30bf\u304c\u7d0d\u5165\u3055\u308c\u305f\u306f\u305a\u306a\u306e\u3067\u3059\u304c\u3001\u643a\u5e2f\u306b\u3076\u3076\u3063\u3068\u6765\u306a\u3044\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3061\u3087\u3063\u3068\u71b1\u4e2d\u3057\u3066\u305f\u3057\u2026<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3061\u3087\u3063\u3068\u90f5\u4fbf\u53d7\u3051\u898b\u3066\u304d\u307e\u3059\u3002\u30fb\u30fb\u30fb\u3000\u6765\u3066\u307e\u3057\u305f\u3002JP\u3060\u304b\u3089\u30e1\u30fc\u30eb\u3067\u304a\u77e5\u3089\u305b\u304c\u306a\u304b\u3063\u305f\u3093\u3067\u3059\u306d\u3002\u914d\u9001\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6307\u5b9a\u3067\u304d\u305f\u308a\u3059\u308b\u306e\u304b\u306a\uff1f\u305d\u308c\u306f\u305d\u3046\u3068\u3001\u809d\u5fc3\u306e\u975e\u63a5\u89e6\u30ea\u30fc\u30c0\u30fb\u30e9\u30a4\u30bf\u304c\u5165\u3063\u3066\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p>\u7d4c\u7406\uff1a\u30a2\u30de\u30be\u30f3\u3067\u78ba\u8a8d\u3057\u307e\u3059\u3002\u30fb\u30fb\u30fb\u3000\u3042\u3042\u3001\u305d\u308c\u3060\u30516\/26\u65e5\u306b\u5225\u4fbf\u3067\u6765\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u306a\u30fc\u3093\u3060\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305d\u308c\u3067\u3001Go\u81ea\u4f53\u306f\u3069\u3093\u306a <a href=\"https:\/\/golang.org\/pkg\/syscall\/\">system call<\/a>\u3082\u3067\u304d\u308b\u9053\u6709\u3067\u3059\u306d\u3002uptime\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3068\u304b\u306a\u3044\u304b\u306a\u3002\u3069\u3046\u3082\u3001\u63a2\u3057\u65b9\u304c\u308f\u304b\u3089\u306a\u3044\u3002\u3042\u3001gopsutil \u3068\u3044\u3046\u306e\u306e\u3001<a href=\"https:\/\/pkg.go.dev\/github.com\/shirou\/gopsutil\/host?tab=doc#Uptime\">package host<\/a> \u3068\u3044\u3046\u306e\u306b Uptime() \u3068\u3044\u3046\u95a2\u6570\u304c\u3042\u308b\u6a21\u69d8\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">func Uptime() (<a href=\"https:\/\/pkg.go.dev\/builtin?tab=doc#uint64\">uint64<\/a>, <a href=\"https:\/\/pkg.go.dev\/builtin?tab=doc#error\">error<\/a>)<\/pre>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3053\u308c\u3001Unixtime \u306e64\u30d3\u30c3\u30c8\u7248\u3067\u3059\u304b\u306d\uff1f<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3058\u3083\u306a\u3044\u3067\u3059\u304b\u306d\u3002\u3042\u3042\u3001Uptime() \u3058\u3083\u306a\u3044\u3051\u3069\u3053\u3053\u306b <a href=\"https:\/\/pkg.go.dev\/mod\/github.com\/shirou\/gopsutil\">gopsutil<\/a> \u306e\u4f7f\u3044\u65b9\u306e\u4f8b\u304c\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% cat mem.go<br>package main<br>import (<br>  \"fmt\"<br>  \"github.com\/shirou\/gopsutil\/mem\"<br>)<br>func main() {<br>  v, _ := mem.VirtualMemory()<br>  \/\/ almost every return value is a struct<br>  fmt.Printf(\"Total: %v, Free:%v, UsedPercent:%f%%\\n\",   v.Total, v.Free, v.UsedPercent)<br>  \/\/ convert to JSON. String() is also implemented<br>  fmt.Println(v)<br>}<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305d\u308c\u3067\u306f go run ...<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% go run mem.go<br>mem.go:6:8: cannot find package \"github.com\/shirou\/gopsutil\/mem\" in any of:<br>\/usr\/local\/go\/src\/github.com\/shirou\/gopsutil\/mem (from $GOROOT)<br>\/Users\/ysato\/go\/src\/github.com\/shirou\/gopsutil\/mem (from $GOPATH)<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u30d1\u30c3\u30b1\u30fc\u30b8\u304c\u7121\u3044\u8a00\u3063\u3066\u307e\u3059\u3002\u307e\u3042\u305d\u308a\u3083\u305d\u3046\u304b\u3002\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3059\u308c\u305d\u3053\u306b\u7f6e\u3051\u3070\u3044\u3044\u306e\u304b\u306a\u3002\u3067\u3082\u9762\u5012\u304f\u3055\u3044\u2026\u3000\u304d\u3063\u3068\u3001apt-get \u7684\u306a\u3082\u306e\u304c\u3042\u308b\u306b\u9055\u3044\u306a\u3044\u3068\u601d\u3046\u306e\u3067\u3059\u304c\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u305d\u308c\u3001\u524d\u3084\u3063\u305f\u3053\u3068\u3042\u308a\u307e\u3059\u3051\u3069\u3002\u5fd8\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"has-text-align-center\">\uff0a\u3000\uff0a\u3000\uff0a<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u3053\u308c\u3067\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"has-text-color has-background has-text-align-center has-very-light-gray-color has-vivid-cyan-blue-background-color\">go get <em>PackageName<\/em><\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3084\u308c\u3084\u308c\u3067\u3059\u306d\u3002\u3067\u306f go get github.com\/shirou\/gopsutil\/mem ... \u51fa\u6765\u307e\u3057\u305f\u3002\u305d\u3057\u3066\u518d\u3073 go run !<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% time go run mem.go<br>Total: 8589934592, Free:1008758784, UsedPercent:71.788216%<br>go run mem.go 0.33s user 0.19s system 76% cpu 0.673 total<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u51fa\u307e\u3057\u305f\u3001\u304c\u30010.67\u79d2\u3001\u304f\u3063\u305d\u91cd\u3044\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% time go build mem.go<br>go build mem.go 0.09s user 0.21s system 83% cpu 0.359 total<br>MacMini% time .\/mem<br>Total: 8589934592, Free:1101942784, UsedPercent:64.464474%<br>.\/mem 0.00s user 0.00s system 7% cpu 0.053 total<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a0.05\u79d2\u3001\u5408\u683c\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305d\u3046\u304b\u30018GiB\u3063\u3066\u30018*1024^3 = 8589934592 \u306a\u3093\u3067\u3059\u306d\u3002\u3061\u3087\u3063\u3068\u5f97\u3057\u305f\u3088\u3046\u306a\u6c17\u5206\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u6e96\u5099\u5b8c\u4e86\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u9577\u3044\u9053\u306e\u308a\u3067\u3057\u305f\u3002\u3061\u3087\u3063\u3068\u4e00\u670d\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p class=\"has-text-align-center\">\uff0a\u3000\uff0a\u3000\uff0a<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u6211\u793e\u3082\u30b3\u30fc\u30d2\u30fc\u30e1\u30fc\u30ab\u30fc\u3068\u3044\u3046\u6587\u660e\u306e\u5229\u5668\u3092\u5c0e\u5165\u3057\u307e\u3057\u3087\u3046\u304b\u306d\uff1f<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3044\u3048\u3001\u304a\u6e6f\u3092\u6cb8\u304b\u3057\u3066\u3053\u306e\u30c9\u30ea\u30c3\u30d7\u30d1\u30c3\u30af\u3092\u5165\u308c\u308b\u306e\u304c\u3001\u3061\u3087\u3046\u3069\u826f\u3044\u4f11\u61a9\u306b\u306a\u308b\u3088\u3046\u306b\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u30ac\u30b9\u53f0\u307e\u3067\u5f92\u6b693\u79d2\u3002<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u3057\u304b\u3057\u30011\u30d1\u30c3\u30af20\u5186\u3063\u3066\u3002\u3057\u304b\u3082\u5341\u5206\u7f8e\u5473\u3057\u3044\u3002\u4e00\u4f53\u30b3\u30fc\u30d2\u30fc\u306e\u9069\u6b63\u4fa1\u683c\u3066\u3044\u304f\u3089\u4f4d\u306a\u3093\u3067\u3059\u304b\u306d\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305d\u3046\u3044\u3048\u3070\u6700\u8fd1\u306f\u30a4\u30f3\u30b9\u30bf\u30f3\u30c8\u30b3\u30fc\u30d2\u30fc\u3068\u3044\u3046\u306e\u3092\u898b\u306a\u304f\u306a\u308a\u307e\u3057\u305f\u3002\u30ec\u30ae\u30e5\u30fc\u306e\u30d1\u30c3\u30af\u304c\u5b89\u304f\u306a\u3063\u305f\u304b\u3089\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u30a4\u30f3\u30b9\u30bf\u30f3\u30c8\u306b\u4f5c\u308c\u308b\u3068\u3044\u3046\u30e1\u30ea\u30c3\u30c8\u306f\u307e\u3060\u3042\u308b\u3068\u601d\u3044\u307e\u3059\u3051\u3069\u306d\u3002<\/p>\n\n\n\n<p class=\"has-text-align-center\">\uff0a\u3000\uff0a\u3000\uff0a<\/p>\n\n\n\n<h2>\u7981\u3058\u3089\u308c\u305f\u904a\u3073<\/h2>\n\n\n\n<p>\u958b\u767a\uff1a\u3055\u3066\u3001\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u672c\u756a\u524d\u306b Node.js \u3067\u30ea\u30cf\u30fc\u30b5\u30eb\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u5f15\u3063\u5f35\u308a\u307e\u3059\u306d\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% cat mem.go<br>package main<br>import (<br>\"fmt\"<br>\"github.com\/shirou\/gopsutil\/mem\"<br>)<br>func main() {<br>fmt.Printf(\"---- mem.go ----\\n\")<br>v, _ := mem.VirtualMemory()<br>fmt.Printf(\"Total: %v, Free:%v\\n\",<br>v.Total, v.Free)<br>}<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3053\u308c\u3092 Wasm \u306b\u3057\u3066\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% GOOS=js GOARCH=wasm go build -o main.wasm<\/p>\n\n\n\n<p>\u958b\u767a\uff1anode \u3067\u5b9f\u884c\uff01<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\"><br>MacMini% GOOS=js GOARCH=wasm go run -exec=\"$(go env GOROOT)\/misc\/wasm\/go_js_wasm_exec\" .<br>---- mem.go ----<br>panic: runtime error: invalid memory address or nil pointer dereference<br>(signal 0xb code=0x0 addr=0x0 pc=0x0]<br><br>goroutine 1 [running]:<br>main.main()<br>\/Users\/ysato\/Desktop\/GoWasm\/mem.go:10 +0x6<br>exit status 2<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u7d42\u308f\u3063\u305f\uff08\u7b11\uff09<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u306b\u306f\u306a\u3093\u3068\uff1f<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u30d7\u30ea\u30f3\u30c8\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p class=\"has-background has-small-font-size has-very-light-gray-background-color\">MacMini% cat mem.go<br>package main<br>import (<br>\"fmt\"<br>\"github.com\/shirou\/gopsutil\/mem\"<br>)<br>func main() {<br>fmt.Printf(\"---- mem.go ----\\n\")<br>v, err := mem.VirtualMemory()<br>if( err != nil ){<br>fmt.Println(\"-- err -- \",err);<br>}else{<br>fmt.Printf(\"Total: %v, Free:%v\\n\",<br>v.Total, v.Free)<br>}<br>}<br>MacMini% GOOS=js GOARCH=wasm go build -o main.wasm<br>MacMini% GOOS=js GOARCH=wasm go run -exec=\"$(go env GOROOT)\/misc\/wasm\/go_js_wasm_exec\" .<br>---- mem.go ----<br>-- err -- <span class=\"has-inline-color has-luminous-vivid-orange-color\">not implemented yet<\/span><\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3046\u30fc\u3093\u300cnot implemented yet\u300d\u304c\u304a\u3056\u306a\u308a\u306e\u56de\u7b54\u306a\u306e\u304b\u3001\u3069\u3046\u304b\u3067\u3059\u306d\u3002\u30b3\u30f3\u30d1\u30a4\u30eb\u306e\u6642\u70b9\u3067\u306f\u30a8\u30e9\u30fc\u306f\u51fa\u306a\u3044\u304b\u3089\u3001\u5b9f\u884c\u74b0\u5883\u306b\u3088\u3063\u3066\u306f\u8a31\u53ef\u3055\u308c\u308b\u30a2\u30af\u30bb\u30b9\u306a\u306e\u304b\u3082\u77e5\u308c\u306a\u3044\u3002Node.js \u3067\u5b9f\u88c5\u3055\u308c\u3066\u3044\u306a\u3044\u3068\u3044\u3046\u610f\u5473\u304b\u3082\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u307b\u307c\u7d76\u671b\u7684\u306a\u72b6\u6cc1\u3067\u3059\u304c\u3001\u4e00\u7e37\u306e\u5e0c\u671b\u3092\u62b1\u304d\u3064\u3064\u672c\u756a\u306e\u30d6\u30e9\u30a6\u30b6\u3078\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a \u958b\u3051 http:\/\/localhost:8080 \uff01<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"1024\" height=\"636\" src=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-18.30.47-1024x636.png\" alt=\"\" class=\"wp-image-8419\" srcset=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-18.30.47-1024x636.png 1024w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-18.30.47-300x186.png 300w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-18.30.47-768x477.png 768w, https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Screen-Shot-2020-06-24-at-18.30.47.png 1132w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure><\/div>\n\n\n\n<p>\u57fa\u76e4\uff1a\u6700\u7d42\u7684\u304b\u3064\u4e0d\u53ef\u9006\u7684\u306b\u7d42\u4e86\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u307e\u3042\u3001\u6700\u7d42\u7684\u304b\u3069\u3046\u304b\u306f\u308f\u304b\u3089\u306a\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u305f\u3060\u3001\u3069\u306e\u9053\u3001file URL \u3067 wasm \u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044\u6642\u70b9\u3067\u3001\u6211\u3005\u306e\u9032\u3080\u9053\u306f\u7d76\u305f\u308c\u3066\u3044\u305f\u306e\u3067\u3059\u3002\u3069\u306e\u9053\u30ed\u30fc\u30ab\u30eb\u306b\u3082 HTTP\u30b5\u30fc\u30d0\u304c\u5fc5\u8981\u306a\u306e\u306a\u3089\u3001\u305d\u3063\u3061\u3067\u305d\u3046\u3044\u3046\u51e6\u7406\u306f\u3084\u308c\u3070\u826f\u3044\u3068\u306f\u8a00\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"has-text-align-center\">\uff0a\u3000\uff0a\u3000\uff0a<\/p>\n\n\n\n<p>\u643a\u5e2f\uff1a\uff08\u3076\u308b\u3076\u308b\u3076\u308b\uff09<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u306f\u3044\u3002\u3048\u3063\u305d\u3046\u306a\u306e\u3002\u3046\u3093\u3001\u51fa\u3089\u308c\u307e\u3059\u3002\u3058\u3083\u3002<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u30b3\u30ed\u30ca\u306e\u5f71\u97ff\u3067\u4e2d\u65ad\u3057\u3066\u3044\u305f\u30dc\u30a6\u30ea\u30f3\u30b0\u306e\u30ea\u30fc\u30b0\u6226\u3067\u3059\u304c\u3001\u5148\u9031\u304b\u3089\u518d\u958b\u3057\u3066\u305f\u305d\u3046\u3067\u3059\u3002\u6765\u9031\u304c\u6700\u7d42\u6226\u306b\u306a\u3063\u3061\u3083\u3046\u3068\u304b\u3002<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3048\u3048\u30fc\uff01<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u308f\u308c\u308f\u308c\u306e\u552f\u4e00\u306e\u30d5\u30a3\u30b8\u30ab\u30eb\u5065\u5eb7\u6cd5\u304c\u2026<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u3066\u304b\u3082\u3046\u6295\u3052\u65b9\u5fd8\u308c\u3061\u3083\u3063\u305f\u3051\u3069\uff08\u7b11\uff09\u6765\u9031\u304c\u697d\u3057\u307f\u3067\u3059\u306d\u3002<\/p>\n\n\n\n<p>\uff0a\u3000\uff0a\u3000\uff0a<\/p>\n\n\n\n<p>\u958b\u767a\uff1a\u3055\u3066\u697d\u3057\u304b\u3063\u305f<a href=\"https:\/\/github.com\/golang\/go\/wiki\/WebAssembly\">Go WebAssembly \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb<\/a>\u3001\u4e00\u5fdc\u6700\u5f8c\u307e\u3067\u76ee\u3092\u901a\u3057\u307e\u3059\u304b\u3002Get Going with WebAssembly ... \u9762\u767d\u305d\u3046\u3060\u3051\u3069\u3001\u540c\u6642\u901a\u8a33\u3068\u304b\u4ed8\u3044\u3066\u308b\u3068\u3044\u3044\u306a\u3002DOM\u3001Canvas\u3002\u3046\u30fc\u3093\u3001JavaScirpt \u3067\u66f8\u304f\u306e\u3088\u308a\u4f55\u304c\u3046\u308c\u3057\u3044\u3093\u3060\u308d\u3046\uff1f\u300cYou can use net\/http library to make HTTP requests from Go\u300d\u3053\u308c\u3063\u3066\u3069\u3053\u306b\u3067\u3082\u3064\u306a\u3052\u308b\u3063\u3066\u308f\u3051\u3058\u3083\u306a\u3044\u3093\u3060\u3088\u306d\u304d\u3063\u3068\u3002Further examples\u3002\u3084\u3063\u3071\u30b0\u30e9\u30d5\u30a3\u30c3\u30af\u30b9\u306f\u9762\u767d\u3044\u306d\u3002Reducing the size of Wasm files\u2026\u3000\u3048\u30fc\u3001\u3053\u308c\u306f\u3059\u3054\u3044\u3002\u300cAt present, Go generates large Wasm files, with the smallest possible size being around ~2MB. If your Go code imports libraries, this file size can increase dramatically. <span class=\"has-inline-color has-luminous-vivid-orange-color\">10MB+ is common<\/span>.\u300d\u3002TinyGo\u300c<span class=\"has-inline-color has-luminous-vivid-orange-color\">The \"Hello world\" example is 575 bytes.<\/span>  \u300d\u305d\u308c\u306f\u3059\u3070\u3089\u3057\u3044\u3002\u3053\u308c\u306f\u3082\u3057\u672c\u6c17\u3067\u3084\u308b\u6642\u306b\u306a\u3063\u305f\u3089\u8981\u691c\u8a0e\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u76e4\uff1a\u305d\u308c\u3063\u3066wasm\u3058\u3083\u306a\u3044build\u3067\u3082\u305d\u3046\u306a\u3093\u3067\u3059\u304b\u306d\u3002\u3060\u3068\u3059\u308b\u3068\u3059\u3054\u3044\u3067\u3059\u3051\u3069\u304a\u8179\u3059\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u793e\u9577\uff1a\u9577\u4e01\u5834\u306b\u306a\u308a\u307e\u3057\u305f\u3002\u5348\u524d\u4e2d\u306b\u59cb\u3081\u308b\u524d\u306b\u6bd4\u3079\u308b\u3068\u3001\u304b\u306a\u308a\u3053\u306e\u5468\u8fba\u306e\u666f\u8272\u304c\u306f\u3063\u304d\u308a\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u98f2\u307f\u306b\u884c\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>-- 2020-0624 SatoxITS<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Go\u3066\u3099WebAssembly-\u2013-\u682a\u5f0f\u4f1a\u793e-ITS-more-1.pdf\">Go\u3066\u3099WebAssembly-\u2013-\u682a\u5f0f\u4f1a\u793e-ITS-more-1<\/a><a href=\"https:\/\/its-more.jp\/ja_jp\/wp-content\/uploads\/2020\/06\/Go\u3066\u3099WebAssembly-\u2013-\u682a\u5f0f\u4f1a\u793e-ITS-more-1.pdf\" class=\"wp-block-file__button\" download>\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u958b\u767a\uff1aextension \u3092 HTML\u3001CSS\u3001JavaScript \u3060\u3051\u3067\u66f8\u304f\u306e\u306f\u3084\u306f\u308a\u53b3\u3057\u3044\u306e\u3067\u3001\u3084\u306f\u308a\u8907\u96d1\u306a\u51e6\u7406\u306f\u73fe\u5730\u306e\u8a00\u8a9e\u3067\u66f8\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 \u793e\u9577\uff1a\u9069\u6750\u9069\u6240\u3067\u884c\u304d\u307e\u3057\u3087\u3046\u3002 \u57fa\u76e4\uff1aWebAssembly\u3068\u3044\u3046 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/its-more.jp\/ja_jp\/?p=8317\" class=\"more-link\"><span class=\"screen-reader-text\">\"Go\u3067WebAssembly\" \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=\/wp\/v2\/posts\/8317"}],"collection":[{"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8317"}],"version-history":[{"count":108,"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=\/wp\/v2\/posts\/8317\/revisions"}],"predecessor-version":[{"id":8445,"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=\/wp\/v2\/posts\/8317\/revisions\/8445"}],"wp:attachment":[{"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/its-more.jp\/ja_jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}