33RD DAAAM INTERNATIONAL SYMPOSIUM ON INTELLIGENT MANUFACTURING AND AUTOMATION DOI: 10.2507/33rd.daaam.proceedings.023 RUST AND WEBASSEMBLY FOR FAST, SECURE, AND RELIABLE SOFTWARE Zlatan Moric, Loïc Branstett & Robert Petrunic This Publication has to be referred as: Moric, Z[latan]; Branstett, L[oic] & Petrunic, R[obert] (2022). Rust and Webassembly for Fast, Secure and Reliable Software, Proceedings of the 33rd DAAAM International Symposium, pp.0165-0171, B. Katalinic (Ed.), Published by DAAAM International, ISBN 978-3-902734-36-5, ISSN 1726-9679, Vienna, Austria DOI: 10.2507/33rd.daaam.proceedings.023 Abstract Rust is a new systems programming language that promises to overcome the seemingly fundamental tradeoff between high-level safety guarantees and low-level control over resource management. WebAssembly (Wasm) is a new binary instruction format for a stack-based virtual machine, it is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications. This paper explores these two new technologies and how they interact with each other. Our findings showed that the combination of those two technologies could revolutionize the way the entire industry design fast and secure software. Keywords: Rust; WebAssembly; C++; memory security; reliable software. 1. Introduction Systems programming languages like C and C++ give programmers low-level control over resource management at the expense of safety, whereas most other modern languages give programmers safe, high-level abstractions at the expense of control. It has long been a holy grail of programming languages research to overcome this seemingly fundamental trade-off and design a language that offers programmers both high-level safety and low-level control. Rust comes closer to achieving this holy grail than any other industrially supported programming language to date, compared to mainstream safe languages, Rust offers both lower-level control and stronger safety guarantees [1]. Some safe languages like Java or C# use a virtual machine but unlike WebAssembly, which is an abstraction over modern hardware, making it language-, hardware-, and platform-independent, with use cases beyond just the Web. WebAssembly has been designed with formal semantics from the start making it a strong contender for secure and reliable software [2]. From the perspective of a web browser, WebAssembly is a type of code that web browsers can execute directly with its compact binary format we can expect to have near-native performance while using different programming languages as compilation targets. While it’s debatable how useful that is, WebAssembly is also capable of running within a web page that already contains JavaScript code, so mixed use of these technologies is possible. In this paper, we are going to focus on Rust as a source for WebAssembly, as this seems to be a very popular choice for developers. - 0165 -