Zero Dependency Python

Summary

We present a new method for distributing and using Python that requires no dependencies beyond the Google Chrome web browser based on Portable Native Client (PNaCl). We will demonstrate an IPython notebook run completely client side with no out-of-browser components, backed by Google Drive, an HTML5 File System, and able to pass numpy arrays as typed arrays without serialization as JSON.

Description

We present a new method for distributing and using Python that requires no dependencies beyond the Google Chrome web browser. By combining the static linking methodology of traditional supercomputer-style deployments of Python with the technology Portable Native Client (PNaCl) we have constructed a method for building, deploying, and sharing fully-sandboxed scientific python stacks that require no client-side installation: the entire IPython notebook and scientific python stack, in a website, at native speeds. We will present this technology, along with some of its potential applications, describing its shortcomings and future extensibility. We will conclude by demonstrating an IPython notebook run completely client side with no out-of-browser components, backed by Google Drive and an HTML5 File System, and able to pass numpy arrays as typed arrays into the browser without serialization as JSON.

  1. We will begin by briefly describing the problems with deploying scientific python as a stack, particularly the dependency graph, installation time, and so on.

  2. We'll describe the PNaCl technology and build system for scientific python, including how individuals can create their own .pexes with their own application stack

  3. We'll describe potential applications, such as bundling safe, sandboxed executables with scripts and lessons

  4. We will demonstrate a complete system for running the IPython notebook in a sandboxed, Google Chrome window

  5. We'll conclude by describing methods that this system could be extended to run sandboxed python executables on any system, independent of the Chrome web browser, such as supercomputers and non-virtualized hosting providers