Josephine: Using JavaScript to safely manage the lifetimes of Rust data
Alan Jeffrey

TL;DR
This paper introduces Josephine, a system that enables safe management of Rust data lifetimes within JavaScript, bridging the gap between garbage-collected and manually memory-managed languages.
Contribution
It presents a novel approach to interface Rust and JavaScript using linear capabilities for safe reference access, applicable to languages with tracing garbage collectors.
Findings
Successfully integrated Rust and JavaScript memory models
Ensured safe access to copyable references across languages
Extended techniques to data with explicit lifetimes
Abstract
This paper is about the interface between languages which use a garbage collector and those which use fancy types for safe manual memory management. Garbage collection is the traditional memory management scheme for functional languages, whereas type systems are now used for memory safety in imperative languages. We use existing techniques for linear capabilities to provide safe access to copyable references, but the application to languages with a tracing garbage collector, and to data with explicit lifetimes is new. This work is related to mixed linear/non-linear programming, but the languages being mixed are Rust and JavaScript.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Logic, programming, and type systems · Distributed systems and fault tolerance
