python - plug - ¿Se pueden escribir programas de Native Client(NaCl) en otros idiomas que no sean C o C++?
native client plugin (4)
El NaCL es (de nuevo) compatible desde Go 1.3.
Ver las notas de lanzamiento de Golang 1.3 .
Respuesta obsoleta a partir de Go 1.2:
El NaCl será compatible en Go 1.3 según se informa:
Cita del documento Go 1.3 Native Client Support :
Go 1.3 incluirá soporte para ejecutar programas de línea de comandos en Native Client, el sandbox de ejecución basado en SFI de Google.
Cita de Inside the Go Playground Go Blog:
Native Client (o "NaCl"), una tecnología desarrollada por Google para permitir la ejecución segura de programas x86 dentro de navegadores web.
(Esta cadena de herramientas especiales se fusionará en el núcleo de Go 1.3. Para obtener más información, lea el documento de diseño. Si desea jugar con NaCl antes de esa fecha, puede revisar un tenedor que tenga todos los cambios).
Ver Ir 1.3 horquilla NACL .
¿Sería posible escribir una aplicación cliente nativa en Python o Go que luego podría ejecutarse en el navegador?
Es arquitectónicamente posible, pero el SDK actual solo tiene cadenas de herramientas C / C ++, por lo que puedo decir. Tienen el REPL de Python funcionando como un cliente basado en navegador (completo con la biblioteca estándar y sqlite http://lackingrhoticity.blogspot.com/2009/06/python-standard-library-in-native.html ).
Go solía compilar en NaCl, pero NaCl ha sido un objetivo tan móvil que el soporte se eliminó de Go. Probablemente resucitará en algún momento si / cuando NaCl se establezca.
Si descarga la cadena de herramientas NaCl, verá:
$ 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
Tenga en cuenta que gfortran ya está presente. Del mismo modo, el soporte mono está disponible (consulte https://github.com/elijahtaylor/mono ) y, por lo tanto, cualquier lenguaje .net también es, en principio, viable. El marco del motor del juego Unity3d usa C # y mono y exporta a NativeClient.