Communication-Safe Web Programming in TypeScript with Routed Multiparty Session Types
Modern web programming involves coordinating interactions between browser clients and a server. Typically, the interactions in web-based distributed systems are informally described, making it hard to ensure correctness, especially communication safety, i.e. all endpoints progress without type errors or deadlocks, conforming to a specified protocol.
We present STScript, a toolchain that generates TypeScript APIs for communication-safe web development over WebSockets, and RouST, a new session type theory that supports multiparty communications with routing mechanisms. STScript provides developers with TypeScript APIs generated from a communication protocol specification based on RouST. The generated APIs build upon TypeScript concurrency practices, complement the event-driven style of programming in full-stack web development, and are compatible with the Node.js runtime for server-side endpoints and the React.js framework for browser-side endpoints.
RouST can express multiparty interactions routed via an intermediate participant. It supports peer-to-peer communication between browser-side endpoints by routing communication via the server in a way that avoids excessive serialisation. RouST guarantees communication safety for endpoint web applications written using STScript APIs.
We evaluate the expressiveness of STScript for modern web programming using several production-ready case studies deployed as web applications.
Wed 3 MarDisplayed time zone: Eastern Time (US & Canada) change
10:00 - 10:45 | Safety & CorrectnessCC Research Papers at CC Virtual Room Chair(s): Jan Vitek Northeastern University / Czech Technical University | ||
10:00 15mTalk | A Modern Compiler for the French Tax Code CC Research Papers Denis Merigoux Inria, Raphaƫl Monat Sorbonne University; CNRS; LIP6, Jonathan Protzenko Microsoft Research | ||
10:15 15mTalk | NSan: A Floating-Point Numerical Sanitizer CC Research Papers Clement Courbet Google Research | ||
10:30 15mTalk | Communication-Safe Web Programming in TypeScript with Routed Multiparty Session Types CC Research Papers Anson Miu Imperial College London; Bloomberg, Francisco Ferreira Imperial College London, Nobuko Yoshida Imperial College London, Fangyi Zhou Imperial College London Pre-print Media Attached |