skip to main content
10.1145/3412841.3442045acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Bringing WebAssembly up to speed with dynamic linking

Published:22 April 2021Publication History

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.

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle Scholar
  4. David Flanagan and Will Sell Like. 2006. JavaScript: The Definitive Guide, 5th.Google ScholarGoogle Scholar
  5. James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. 2000. The Java language specification. Addison-Wesley Professional.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. John Hartman, Udi Manber, Larry Peterson, and Todd Proebsting. 1996. Liquid software: A new paradigm for networked systems. Technical Report. Technical Report 96.Google ScholarGoogle Scholar
  8. Ron Kohavi and Roger Longbotham. 2007. Online experiments: Lessons learned. Computer 40, 9 (2007), 103--105.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. Tommi Mikkonen and Antero Taivalsaari. 2007. Using JavaScript as a real programming language. Sun Microsystems, Inc.Google ScholarGoogle Scholar
  12. Patrick Mulder and Kelsey Breseman. 2016. Node. js for embedded systems: using web technologies to build connected devices. " O'Reilly Media, Inc.".Google ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. James Noble and Charles Weir. 2001. Small memory software: patterns for systems with limited memory. Addison-Wesley Longman Publishing Co., Inc.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. Ben Shneiderman. 1984. Response time and display rate in human performance with computers. ACM Computing Surveys (CSUR) 16, 3 (1984), 265--285.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. Mark Weiser. 1991. The Computer for the 21 st Century. Scientific american 265, 3 (1991), 94--105.Google ScholarGoogle Scholar
  21. 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 ScholarGoogle ScholarCross RefCross Ref
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Bringing WebAssembly up to speed with dynamic linking

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SAC '21: Proceedings of the 36th Annual ACM Symposium on Applied Computing
          March 2021
          2075 pages
          ISBN:9781450381048
          DOI:10.1145/3412841

          Copyright © 2021 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 22 April 2021

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate1,650of6,669submissions,25%

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader