ABSTRACT
WebAssembly is a new technology that aims at portable compilation target for various programming languages. The goal is to support deployment on the web for client and server applications. While the technology itself is independent from the browser, majority of the implementations are browser-based, and hence the associated use cases are limited. In this paper, we study the use of WebAssembly outside the browser. In particular, we are interested in partitioning WebAssembly applications into modules and linking them during execution allowing reductions in memory consumption, binary size, and compilation and startup time.
- David Bryant. 2020. WebAssembly Outside the Browser: A New Foundation for Pervasive Computing. In Keynote at ICWE'20, June 9--12, 2020, Helsinki, Finland.Google Scholar
- Michael Butkiewicz, Harsha V Madhyastha, and Vyas Sekar. 2013. Characterizing web page complexity and its impact. IEEE/ACM Transactions on Networking 22, 3 (2013), 943--956.Google ScholarDigital Library
- ECMA. 2020. 262: Ecmascript language specification. European Association for Standardizing Information and Communication Systems, https://www.ecmainternational.org/publications/standards/Ecma-262.htm (2020).Google Scholar
- David Flanagan and Will Sell Like. 2006. JavaScript: The Definitive Guide, 5th.Google Scholar
- James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. 2000. The Java language specification. Addison-Wesley Professional.Google ScholarDigital Library
- Andreas Haas, Andreas Rossberg, Derek L Schuff, Ben L Titzer, Michael Holman, Dan Gohman, Luke Wagner, Alon Zakai, and JF Bastien. 2017. Bringing the web up to speed with WebAssembly. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation. 185--200.Google ScholarDigital Library
- John Hartman, Udi Manber, Larry Peterson, and Todd Proebsting. 1996. Liquid software: A new paradigm for networked systems. Technical Report. Technical Report 96.Google Scholar
- Ron Kohavi and Roger Longbotham. 2007. Online experiments: Lessons learned. Computer 40, 9 (2007), 103--105.Google ScholarDigital Library
- Daniel Lehmann, Johannes Kinder, and Michael Pradel. 2020. Everything Old is New Again: Binary Security of WebAssembly. In 29th {USENIX} Security Symposium ({USENIX} Security 20). 217--234.Google Scholar
- Niko Mäkitalo, Francesco Nocera, Marina Mongiello, and Stefano Bistarelli. 2018. Architecting the Web of Things for the fog computing era. IET Software 12, 5 (2018), 381--389.Google ScholarCross Ref
- Tommi Mikkonen and Antero Taivalsaari. 2007. Using JavaScript as a real programming language. Sun Microsystems, Inc.Google Scholar
- Patrick Mulder and Kelsey Breseman. 2016. Node. js for embedded systems: using web technologies to build connected devices. " O'Reilly Media, Inc.".Google Scholar
- Marius Musch, Christian Wressnegger, Martin Johns, and Konrad Rieck. 2019. New Kid on the Web: A Study on the Prevalence of WebAssembly in the Wild. In International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment. Springer, 23--42.Google Scholar
- James Noble and Charles Weir. 2001. Small memory software: patterns for systems with limited memory. Addison-Wesley Longman Publishing Co., Inc.Google Scholar
- Ella Peltonen, Mehdi Bennis, Michele Capobianco, Merouane Debbah, Aaron Ding, Felipe Gil-Castiñeira, Marko Jurmu, Teemu Karvonen, Markus Kelanti, Adrian Kliks, et al. 2020. 6G White Paper on Edge Intelligence. arXiv preprint arXiv:2004.14850 (2020).Google Scholar
- Ben Shneiderman. 1984. Response time and display rate in human performance with computers. ACM Computing Surveys (CSUR) 16, 3 (1984), 265--285.Google ScholarDigital Library
- Jian Sun, DingYuan Cao, XiMing Liu, ZiYi Zhao, WenWen Wang, XiaoLi Gong, and Jin Zhang. 2019. SELWasm: A Code Protection Mechanism for WebAssembly. In 2019 IEEE Intl Conf on Parallel & Distributed Processing with Applications, Big Data & Cloud Computing, Sustainable Computing & Communications, Social Computing & Networking (ISPA/BDCloud/SocialCom/SustainCom). IEEE, 1099--1106.Google Scholar
- Antero Taivalsaari and Tommi Mikkonen. 2018. On the development of IoT systems. In 2018 Third International Conference on Fog and Mobile Edge Computing (FMEC). IEEE, 13--19.Google ScholarCross Ref
- Antero Taivalsaari, Tommi Mikkonen, and Kari Systä. 2014. Liquid software manifesto: The era of multiple device ownership and its implications for software architecture. In 2014 IEEE 38th Annual Computer Software and Applications Conference. IEEE, 338--343.Google ScholarDigital Library
- Mark Weiser. 1991. The Computer for the 21 st Century. Scientific american 265, 3 (1991), 94--105.Google Scholar
- Elliott Wen and Gerald Weber. 2020. Wasmachine: Bring IoT up to Speed with A WebAssembly OS. In 2020 IEEE International Conference on Pervasive Computing and Communications Workshops (PerCom Workshops). IEEE, 1--4.Google ScholarCross Ref
- World Wide Web Consortium. 2019. WebAssembly Core Specification. https://www.w3.org/TR/wasm-core-1/ https://webassembly.github.io/spec/core/_download/WebAssembly.pdf.Google Scholar
- Alon Zakai. 2011. Emscripten: an LLVM-to-JavaScript compiler. In Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion. 301--312.Google ScholarDigital Library
Index Terms
- Bringing WebAssembly up to speed with dynamic linking
Recommendations
Understanding the performance of webassembly applications
IMC '21: Proceedings of the 21st ACM Internet Measurement ConferenceWebAssembly is the newest language to arrive on the web. It features a compact binary format, making it fast to be loaded and decoded. While WebAssembly is generally expected to be faster than JavaScript, there have been mixed results in proving which ...
Bringing the web up to speed with WebAssembly
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and ImplementationThe maturation of the Web platform has given rise to sophisticated and demanding Web applications such as interactive 3D visualization, audio and video software, and games. With that, efficiency and security of code on the Web has become more important ...
Towards a WebAssembly standalone runtime on GraalVM
SPLASH Companion 2019: Proceedings Companion of the 2019 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for HumanityWebAssembly is a binary format compilation target for languages such as C/C++, Rust and Go. It enables execution within Web browsers and as standalone programs. Compiled modules may interoperate with other languages such as JavaScript, and use external ...
Comments