We gratefully acknowledge support from
the Simons Foundation and member institutions.
Full-text links:


Current browse context:


Change to browse by:

References & Citations

DBLP - CS Bibliography


(what is this?)
CiteULike logo BibSonomy logo Mendeley logo del.icio.us logo Digg logo Reddit logo ScienceWISE logo

Computer Science > Programming Languages

Title: Communication-Safe Web Programming in TypeScript with Routed Multiparty Session Types

Authors: Anson Miu (1 and 2), Francisco Ferreira (1), Nobuko Yoshida (1), Fangyi Zhou (1) ((1) Imperial College London, (2) Bloomberg)
Abstract: 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.
Comments: Long version for the paper accepted at CC '21
Subjects: Programming Languages (cs.PL); Software Engineering (cs.SE)
Cite as: arXiv:2101.04622 [cs.PL]
  (or arXiv:2101.04622v1 [cs.PL] for this version)

Submission history

From: Fangyi Zhou [view email]
[v1] Tue, 12 Jan 2021 17:22:39 GMT (364kb,D)

Link back to: arXiv, form interface, contact.