ブラウザで実行できるネイティブ クライアント アプリケーションを Python または Go で作成することは可能でしょうか?
4 に答える
Go は NaCl にコンパイルするために使用されていましたが、NaCl は非常に移動するターゲットであったため、Go からサポートが削除されました。NaClが落ち着いたら、おそらくいつか復活するでしょう。
アーキテクチャ的には可能ですが、現在の SDK には、私が知る限り C/C++ ツールチェーンしかありません。ブラウザベースのクライアントとして Python REPL を実行しています (標準ライブラリと sqlite http://lackingrhoticity.blogspot.com/2009/06/python-standard-library-in-native.htmlを完備)。
NaCL は (再び) Go 1.3 以降でサポートされています。
Golang 1.3 リリース ノートを参照してください。
Go 1.2の時点で廃止された回答:
NaCl は Go 1.3 でサポートされる予定です:
Go 1.3 ネイティブ クライアント サポートドキュメントからの引用:
Go 1.3 には、Google の SFI ベースの実行サンドボックスである Native Client でコマンドライン プログラムを実行するためのサポートが含まれます。
Inside the Go Playground Go ブログからの引用:
Native Client (または "NaCl") は、Web ブラウザ内で x86 プログラムを安全に実行できるようにするために Google によって開発されたテクノロジです。
(この特別なツール チェーンは、Go 1.3 のコアにマージされます。詳細については、設計ドキュメントをお読みください。それまでに NaCl を試してみたい場合は、すべての変更を含むフォークを確認してください。)
Go 1.3 NACL フォークを参照してください。
NaCl ツールチェーンをダウンロードすると、次のように表示されます。
$ ls toolchain/linux_x86/bin
i686-nacl-addr2line i686-nacl-objcopy x86_64-nacl-gcc-4.4.3
i686-nacl-ar i686-nacl-objdump x86_64-nacl-gccbug
i686-nacl-as i686-nacl-ranlib x86_64-nacl-gcov
i686-nacl-c++ i686-nacl-readelf x86_64-nacl-gfortran
i686-nacl-c++filt i686-nacl-size x86_64-nacl-gprof
i686-nacl-cpp i686-nacl-strings x86_64-nacl-ld
i686-nacl-g++ i686-nacl-strip x86_64-nacl-nm
i686-nacl-gcc x86_64-nacl-addr2line x86_64-nacl-objcopy
i686-nacl-gcc-4.4.3 x86_64-nacl-ar x86_64-nacl-objdump
i686-nacl-gccbug x86_64-nacl-as x86_64-nacl-ranlib
i686-nacl-gcov x86_64-nacl-c++ x86_64-nacl-readelf
i686-nacl-gfortran x86_64-nacl-c++filt x86_64-nacl-size
i686-nacl-gprof x86_64-nacl-cpp x86_64-nacl-strings
i686-nacl-ld x86_64-nacl-g++ x86_64-nacl-strip
i686-nacl-nm x86_64-nacl-gcc
gfortran は既に存在することに注意してください。同様に、mono サポートが利用可能であり ( https://github.com/elijahtaylor/monoを参照)、原則として任意の .net 言語も実行可能です。Unity3d ゲーム エンジン フレームワークは、C# と mono を使用し、NativeClient にエクスポートします。