Snakes in a browser

11:45 AM - 12:10 PM on July 17, 2016, Room CR7

Russell Keith-Magee

Audience level:


We all know that Python and Django can be used to write server-side software, but what about the client side? What about the browser? Can you use Python to power client-side interactions? Can you deploy Python logic (such as validation logic) on both the client and the server?


Batavia is an open source project that implements a Python virtual machine in Javascript. This enables users to ship Python bytecode (i.e., PYC files) to a client, and have the client run them in a browser. Toga Web is an implementation of the Toga UI API that outputs a Django website. This enables you to develop web user interfaces in much the same way as you would build a traditional desktop or mobile UI. As Toga is powered by Batavia, you can build a rich client web app using only Python code - no Javascript or any other language is required.

In this talk, Russell Keith-Magee will walk you through the Batavia project, and how it is used, along with Django, to power Toga Web. You'll be taken on a dive through how Batavia works, and how it is able to deliver Python logic to a browser with very little overhead. The talk will conclude with a demonstration of Toga in action, and an exploration of what the future might hold if Batavia and Toga were developed further.