This is a prototype for plumbing Mojo into the NaCl sandbox. It is currently insecure (see below), does not provide a stable ABI (IRT support must be added), and does not support Mojo functions that return pointers (for example, MojoMapBuffer). generator/interface.py contains a programmatic description of the stable Mojo interface. This will need to be updated as the interface changes. Run generator/generate_nacl_bindings.py to generate the bindings that plumb this interface into the NaCl sandbox. To test: Build "monacl_shell" and "monacl_test". Run monacl_shell with the IRT as the first argument and the monacl_test as the second argument. For example, to run a Debug 32-bit Intel build: cd out/Debug ./monacl_shell irt_core_newlib_x32.nexe monacl_test_newlib_x32.nexe Security TODO list: Separate trusted and untrusted Mojo handles. Validate and copy option structures. Protect untrusted buffers passed into Mojo: NaClVmIoWillStart/HasEnded. volatile accesses to untrusted memory (untrusted code could race). Overflow checking in array bounds validation.