{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,8,26]],"date-time":"2025-08-26T00:16:21Z","timestamp":1756167381515,"version":"3.44.0"},"reference-count":72,"publisher":"IEEE","license":[{"start":{"date-parts":[[2019,9,1]],"date-time":"2019-09-01T00:00:00Z","timestamp":1567296000000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-029"},{"start":{"date-parts":[[2019,9,1]],"date-time":"2019-09-01T00:00:00Z","timestamp":1567296000000},"content-version":"stm-asf","delay-in-days":0,"URL":"https:\/\/doi.org\/10.15223\/policy-037"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2019,9]]},"DOI":"10.1109\/ancs.2019.8901892","type":"proceedings-article","created":{"date-parts":[[2019,11,25]],"date-time":"2019-11-25T13:43:48Z","timestamp":1574689428000},"page":"1-13","source":"Crossref","is-referenced-by-count":11,"title":["The Case for Writing Network Drivers in High-Level Programming Languages"],"prefix":"10.1109","author":[{"given":"Paul","family":"Emmerich","sequence":"first","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Simon","family":"Ellmann","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Fabian","family":"Bonk","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Alex","family":"Egger","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Esa\u00fa Garc\u00eda","family":"S\u00e1nchez-Torija","sequence":"additional","affiliation":[{"name":"Universitat Polit&#x00E8;cnica de Catalunya"}]},{"given":"Thomas","family":"G\u00fcnzel","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Sebastian","family":"di Luzio","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Alexandru","family":"Obada","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Maximilian","family":"Stadlmeier","sequence":"additional","affiliation":[{"name":"Ludwig-Maximilians-Universit&#x00E4;t M&#x00FC;nchen"}]},{"given":"Sebastian","family":"Voit","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]},{"given":"Georg","family":"Carle","sequence":"additional","affiliation":[{"name":"Technical University ot Munich"}]}],"member":"263","reference":[{"journal-title":"Online discussion","article-title":"Rust is the futureofsystemsprogramming, Cis the new Assembly","year":"2019","key":"ref72"},{"journal-title":"TAPS Working Group","article-title":"An Abstract Application Layer Interface to Transport Services","year":"2019","key":"ref71"},{"key":"ref70","article-title":"Advances in Networking","author":"cheshire","year":"2017","journal-title":"WWDCI7"},{"journal-title":"Google","article-title":"Fuchsia git repositories","year":"2019","key":"ref39"},{"journal-title":"Proposal Eliminate STW stackrescanning","year":"2016","author":"clements","key":"ref38"},{"journal-title":"TechEmpower","article-title":"TechEmpower Framework Benchmarks","year":"2019","key":"ref33"},{"key":"ref32","doi-asserted-by":"publisher","DOI":"10.1145\/2815675.2815692"},{"journal-title":"Intel","article-title":"Intel Virtualization Technologyfor Directed I\/O","year":"2019","key":"ref31"},{"key":"ref30","first-page":"203","article-title":"NetBricks: Taking the V out of NFV","author":"panda","year":"2016","journal-title":"OSDI'I6"},{"key":"ref37","article-title":"Go GC: Latency Problem Solved","author":"hudson","year":"2015","journal-title":"GopherCon Denver"},{"journal-title":"Linux Documentation","article-title":"Linux kernelmemory barriers","year":"2019","key":"ref36"},{"journal-title":"Linux kernel documentation","article-title":"VFIO - Virtual FunctionI\/O","year":"2019","key":"ref35"},{"journal-title":"RFC 1812 Requirements for IP Version 4 Routers","year":"1995","author":"baker","key":"ref34"},{"journal-title":"Project zero","article-title":"Meltdown and Spectre","year":"2018","key":"ref60"},{"key":"ref62","doi-asserted-by":"publisher","DOI":"10.1145\/5666.5673"},{"journal-title":"The computer language benchmarksgame","year":"2019","author":"gouy","key":"ref61"},{"journal-title":"MoonSniff","year":"2018","author":"frank","key":"ref63"},{"journal-title":"Intel","article-title":"Intel Virtualization Technology for Directed I\/O","year":"2018","key":"ref28"},{"journal-title":"Microsoft","article-title":".NET Garbage Collection Latency Modes","year":"2019","key":"ref64"},{"journal-title":"Redox Developers","article-title":"Redox project page","year":"2019","key":"ref27"},{"journal-title":"OpenJDK","article-title":"Shenandoah GC","year":"2019","key":"ref65"},{"key":"ref66","article-title":"A low-latency garbage collector for GHC","author":"gamari","year":"2018","journal-title":"MuniHac 2018"},{"key":"ref29","doi-asserted-by":"publisher","DOI":"10.1145\/3232755.3232767"},{"journal-title":"DPDK Project","article-title":"Vhost-userCVE-2018-1059","year":"2018","key":"ref67"},{"journal-title":"Google","article-title":"Playingwith QUIC","year":"2019","key":"ref68"},{"journal-title":"CloudFlare","article-title":"quice: Savoury implementation of the QUIC transport protocol","year":"2019","key":"ref69"},{"key":"ref2","article-title":"Protocol-Oriented Programming in Swift","author":"abrahams","year":"2015","journal-title":"WWDC15"},{"journal-title":"Linux Foundation","article-title":"Data Plane Development Kit","year":"2013","key":"ref1"},{"journal-title":"LuaJIT FFI Library","year":"2019","author":"pall","key":"ref20"},{"key":"ref22","doi-asserted-by":"publisher","DOI":"10.1145\/2656877.2656890"},{"journal-title":"IO Visor Project","article-title":"Introduction to XDP","year":"2019","key":"ref21"},{"key":"ref24","article-title":"An overview of the Singularity project","author":"hunt","year":"2005","journal-title":"tech rep MSR-TR-2005-135 Microsoft Research"},{"key":"ref23","first-page":"89","article-title":"The benefits and costs of writing a POSIX kernel in a high-level language","author":"cutler","year":"2018","journal-title":"OSDI'I8"},{"key":"ref26","doi-asserted-by":"publisher","DOI":"10.1145\/1090189.1086380"},{"key":"ref25","doi-asserted-by":"publisher","DOI":"10.1109\/40.591652"},{"journal-title":"OS js","year":"2019","author":"evenrud","key":"ref50"},{"journal-title":"OASIS VIRTIO TC","article-title":"Virtual I\/O Device (VIRTIO)Version1.0","year":"2016","key":"ref51"},{"key":"ref59","doi-asserted-by":"publisher","DOI":"10.6028\/jres.118.012"},{"journal-title":"OCaml Manual","article-title":"Optimisation withFlambda","year":"2019","key":"ref58"},{"key":"ref57","doi-asserted-by":"publisher","DOI":"10.1109\/MCOM.2018.1800069"},{"key":"ref56","doi-asserted-by":"publisher","DOI":"10.1145\/2349896.2349910"},{"key":"ref55","doi-asserted-by":"publisher","DOI":"10.1109\/ANCS.2015.7110118"},{"journal-title":"pypi","article-title":"PyUSB package","year":"2019","key":"ref54"},{"journal-title":"pypi","article-title":"Download statistics for PyUSB","year":"2019","key":"ref53"},{"journal-title":"HashiCorp","article-title":"Vagrant website","year":"2019","key":"ref52"},{"key":"ref10","first-page":"101","article-title":"netmap: A Novel Framework for Fast Packet I\/O","author":"rizzo","year":"0","journal-title":"USENIX Annual Technical Conference"},{"key":"ref11","doi-asserted-by":"publisher","DOI":"10.1109\/JSAC.2016.2558998"},{"journal-title":"Sun microsystems and IBM","article-title":"Javaos for business devicedriver guide","year":"1998","key":"ref40"},{"key":"ref12","doi-asserted-by":"publisher","DOI":"10.1145\/354871.354874"},{"key":"ref13","doi-asserted-by":"publisher","DOI":"10.1109\/ANCS.2015.7110116"},{"key":"ref14","first-page":"117","article-title":"The design and implementation of open vswitch","author":"pfaff","year":"2015","journal-title":"12th USENIX Symposium on Networked Systems Design and Implementation (NSDI 15)"},{"journal-title":"Open VSwitch Project","article-title":"Open vSwitchreleases","year":"2019","key":"ref15"},{"journal-title":"The PfSense Project","article-title":"pfSense website","year":"2019","key":"ref16"},{"key":"ref17","article-title":"DPDK, VPP & pfSense 3.0","author":"thompson","year":"2017","journal-title":"Proc DPDK Summit Userspace"},{"journal-title":"Snabb Simple and fast packet networking","year":"2012","author":"gorrie","key":"ref18"},{"journal-title":"LuaJIT","year":"2019","author":"pall","key":"ref19"},{"key":"ref4","doi-asserted-by":"publisher","DOI":"10.1145\/361011.361061"},{"key":"ref3","doi-asserted-by":"publisher","DOI":"10.1145\/155360.155580"},{"journal-title":"AI The Tumultuous Search for Artificial Intelligence Ba-sicBooks","year":"1993","author":"crevier","key":"ref6"},{"key":"ref5","first-page":"75","article-title":"Unix at 25","volume":"19","author":"salus","year":"1994","journal-title":"Byte Magazine"},{"key":"ref8","doi-asserted-by":"publisher","DOI":"10.1145\/1851275.1851207"},{"journal-title":"Ntop","article-title":"Introducing PF_RING DNA (Direct NIC Access)","year":"2010","key":"ref7"},{"journal-title":"Node-OS","year":"2019","author":"legan\u00e9s-combarro","key":"ref49"},{"journal-title":"PacketShader Packet I\/O Engine","year":"2010","author":"han","key":"ref9"},{"journal-title":"Vapor project","article-title":"Vapor website","year":"2019","key":"ref46"},{"journal-title":"P-oogic Property verification for Haskell programs","year":"2002","author":"kieburtz","key":"ref45"},{"journal-title":"Node js Foundation","article-title":"Node.js","year":"2019","key":"ref48"},{"journal-title":"Kitura project","article-title":"Kitura website","year":"2019","key":"ref47"},{"key":"ref42","doi-asserted-by":"publisher","DOI":"10.1145\/2451116.2451167"},{"journal-title":"MirageOS project","article-title":"Cstruct","year":"2019","key":"ref41"},{"journal-title":"Project Soli","year":"2019","author":"williams","key":"ref44"},{"journal-title":"MirageOS project","article-title":"Performance harness for MirageOS 3","year":"2019","key":"ref43"}],"event":{"name":"2019 ACM\/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS)","start":{"date-parts":[[2019,9,24]]},"location":"Cambridge, UK","end":{"date-parts":[[2019,9,25]]}},"container-title":["2019 ACM\/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS)"],"original-title":[],"link":[{"URL":"http:\/\/xplorestaging.ieee.org\/ielx7\/8891060\/8901868\/08901892.pdf?arnumber=8901892","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,8,25]],"date-time":"2025-08-25T20:33:55Z","timestamp":1756154035000},"score":1,"resource":{"primary":{"URL":"https:\/\/ieeexplore.ieee.org\/document\/8901892\/"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,9]]},"references-count":72,"URL":"https:\/\/doi.org\/10.1109\/ancs.2019.8901892","relation":{},"subject":[],"published":{"date-parts":[[2019,9]]}}}