{"_id":"@perseveranza-pets/milo","_rev":"15-47774bec22038c6b7ee3dc4a1ce6cd47","name":"@perseveranza-pets/milo","dist-tags":{"next":"0.4.0-alpha.6","latest":"0.9.0"},"versions":{"0.1.0":{"name":"@perseveranza-pets/milo","version":"0.1.0","keywords":["http","parser"],"author":{"name":"Shogun","email":"shogun@cowtech.it"},"license":"ISC","_id":"@perseveranza-pets/milo@0.1.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"e354ab61a34d1c5a19257d0f57decc507e8f7239","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.1.0.tgz","fileCount":6,"integrity":"sha512-+2QD3gFzuAvI7ZkFFsX9XgsqfVQDFJF5yYXfzlvXaCBFXnjSYuEa4xqwkQvqhjnfItIh+mCaaJjpsBDbbP+BEQ==","signatures":[{"sig":"MEYCIQDw7sNLDcIJhLhNYzQUQ9LSoSOjRx7j5cpCkDL7+P+FiAIhAKni6GP1NaOlakuZn3N+rz2KYS5jgbBsfZwY81ZpXvVm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":103202},"main":"index.js","types":"index.d.ts","engines":{"node":">= 18.18.0"},"gitHead":"114855677cd95c3a21391047dc849efd382525da","private":false,"_npmUser":{"name":"shogun_panda","email":"paolo@cowtech.it"},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"_npmVersion":"10.2.4","description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.1.0_1711629585373_0.4320813049828196","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@perseveranza-pets/milo","version":"0.2.0","keywords":["http","parser"],"author":{"name":"Shogun","email":"shogun@cowtech.it"},"license":"ISC","_id":"@perseveranza-pets/milo@0.2.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"b0d2ca4d4dacff9e396d1b1df22ea7f94761d29f","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.2.0.tgz","fileCount":7,"integrity":"sha512-N5pwBmFYxZOZ7mkCtdWtKrFW/3Rx8cDb/k4/CaBl8ziLXy0FU1YkjlHiKig6RLLGxgH/kNpHqktA18ElRc/VIQ==","signatures":[{"sig":"MEQCIDGn1ApbZtrktn/W2T/DNZWjlxUmJoNDgTBUGwTQL6OEAiB1sB2jfix7rCm2zUOVwwZDK1K/MyId3qAccqUUpgtrLA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185776},"main":"index.js","types":"index.d.ts","engines":{"node":">= 18.18.0"},"gitHead":"156f2282659578fcb06b8c7cc1fe10d6388fb5c3","private":false,"_npmUser":{"name":"shogun_panda","email":"paolo@cowtech.it"},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"_npmVersion":"10.2.4","description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"20.11.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.2.0_1712405710466_0.33534157739463066","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@perseveranza-pets/milo","version":"0.2.1","keywords":["http","parser"],"author":{"name":"Shogun","email":"shogun@cowtech.it"},"license":"ISC","_id":"@perseveranza-pets/milo@0.2.1","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"e1862004f14c5baa03516968d95a7429a813ce37","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.2.1.tgz","fileCount":7,"integrity":"sha512-Q96Q1cdYfofu5Rbaj3z5HYzkhlDS+pljh/g+GX/JHr/TlodpDDxFZ1sVuQI6O3+rFdfrU5ScgD1kx4NyCYebbw==","signatures":[{"sig":"MEQCIHE1FPwdnxFObxvlU/DT36fawF7fycWQNHbOurHGoOMqAiAZQM+ZD3/GPxR54VbVTY4PjUTswkqu5sQtbNv1iE/8tA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185990},"main":"index.js","types":"index.d.ts","engines":{"node":">= 18.18.0"},"gitHead":"042608b4eef3f4ddb42cd1864e1734b1b410e82a","private":false,"_npmUser":{"name":"shogun_panda","email":"paolo@cowtech.it"},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"_npmVersion":"10.5.2","description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.2.1_1716016821822_0.003700617878039214","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@perseveranza-pets/milo","version":"0.3.0","keywords":["http","parser"],"author":{"name":"Shogun","email":"shogun@cowtech.it"},"license":"ISC","_id":"@perseveranza-pets/milo@0.3.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"d9b7ae6df5019d15866996786fe0ac100373b6bc","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.3.0.tgz","fileCount":7,"integrity":"sha512-CeO1UBwtsHHj/DsiXqdfoixYvNqohmHpkTdn8m8LTuu2RCMZohhV/bq/Yg9eWqu/XUrepqDN6ZayWnTS/SDhHQ==","signatures":[{"sig":"MEUCIQD1GTWKxL60CvGRDVifkPASJ/iFIc87kTjjPVSQFGHqqQIgVpoWrDJqHV+Hhp1ZIBp1RvW+uDIJizJPH9veidX8Z1s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130666},"main":"index.js","types":"index.d.ts","engines":{"node":">= 20.18.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","require":"./index.js"},"./unbundled":{"types":"./index-unbundled.d.ts","import":"./index-unbundled.js","require":"./index-unbundled.js"}},"gitHead":"4e20f9204aabd37d83d329e9f1a0735010d245f2","private":false,"_npmUser":{"name":"shogun_panda","email":"paolo@cowtech.it"},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"_npmVersion":"10.9.2","description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.3.0_1745219454275_0.728922019757011","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-alpha.5":{"name":"@perseveranza-pets/milo","version":"0.4.0-alpha.5","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.4.0-alpha.5","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"97aa76e132b8018c7d63b5005eb418d0af7660c7","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.4.0-alpha.5.tgz","fileCount":10,"integrity":"sha512-EfVeGP+/qrLgy2uoDeHyFoIcI78uJ8L04ZRAEvYJ+ZDcC2RpFfNJ1eHmawXk9iRvXjJ8i1MuewEyedN4+r1DGQ==","signatures":[{"sig":"MEYCIQDLUslW9SZ+lI3uow4LDmSox6+w2V8wzHJdmguKPkIWigIhAL0MrZ43rJbOJpuIB6E2zbPQ52G9HPjMlj2MguL9BrGs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.4.0-alpha.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":268381},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":{"import":"./src/simd/index.js","require":"./src/simd/index.js"},"./no-simd":{"import":"./src/no-simd/index.js","require":"./src/no-simd/index.js"},"./unbundled":{"import":"./src/simd/unbundled.js","require":"./src/simd/unbundled.js"},"./no-simd/unbundled":{"import":"./src/no-simd/unbundled.js","require":"./src/no-simd/unbundled.js"}},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"26.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.4.0-alpha.5_1780289442252_0.9569302503423065","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-alpha.6":{"name":"@perseveranza-pets/milo","version":"0.4.0-alpha.6","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.4.0-alpha.6","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"d32d0b5f67a176791c9cb55de363b41df278b7d4","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.4.0-alpha.6.tgz","fileCount":10,"integrity":"sha512-DSkKBgpRV6+J3ZlSHXSTkq7gHbc6YmfCfx7KPDBepq2Culsg8VAjSUVjWgTOM09SPrkM/65kL9Dm9okoABlm8Q==","signatures":[{"sig":"MEQCIGlk/f9vvMptRg5DT/Fmgomdkq4t+ylF0omKlluCUwCBAiAY02C6Y17odO4Ojnea7YA/0w7mS+U3T9klAmF4UGgcrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.4.0-alpha.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":269460},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":{"import":"./src/simd/index.js","require":"./src/simd/index.js"},"./no-simd":{"import":"./src/no-simd/index.js","require":"./src/no-simd/index.js"},"./unbundled":{"import":"./src/simd/unbundled.js","require":"./src/simd/unbundled.js"},"./no-simd/unbundled":{"import":"./src/no-simd/unbundled.js","require":"./src/no-simd/unbundled.js"}},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"26.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.4.0-alpha.6_1780292636446_0.8454890289307542","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@perseveranza-pets/milo","version":"0.4.0","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.4.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"8c0bbb7a6d3f99509771063fac9d807039f422bc","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.4.0.tgz","fileCount":10,"integrity":"sha512-E7mMY3BezjlxDvhyc3iT7gHNaaLJSsTDIYsPl04Ey+wUuvDJwktWyRZNB1YFdo4YOBDBPKEn3MXvpdDa0Mz24w==","signatures":[{"sig":"MEYCIQDQdl8xV48yNphghgY+JA0cdSbOy4aITLte/0hnRX2b5wIhAOKDzcrhUDg2BsETriHzbp4xhRdjrBeBTpMdLi5Hg2q/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":269392},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":{"import":"./src/simd/index.js","require":"./src/simd/index.js"},"./no-simd":{"import":"./src/no-simd/index.js","require":"./src/no-simd/index.js"},"./unbundled":{"import":"./src/simd/unbundled.js","require":"./src/simd/unbundled.js"},"./no-simd/unbundled":{"import":"./src/no-simd/unbundled.js","require":"./src/no-simd/unbundled.js"}},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"26.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.4.0_1780293000726_0.17213078322750675","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@perseveranza-pets/milo","version":"0.5.0","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.5.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"f0a07e92f5fc6cd0981c5295a19186e9ae961332","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.5.0.tgz","fileCount":14,"integrity":"sha512-v+8NZlxIUj+61SHhDjvhjUxXamcRED9zafKKH6vyBDOHvXFVxwVLdPiskeqxWzHqsdFio9i44cONLEdkPZb9Vw==","signatures":[{"sig":"MEQCICbQUGOCl14jGTH7ISigZdJWSOV5jbW/zshhsquQWe+SAiBeyqeMG3ylXvWMkMmH23l2eK2Y5Ph/el1waWHifO78YQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":446157},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":{"import":"./src/simd/index.js","require":"./src/simd/index.cjs"},"./no-simd":{"import":"./src/no-simd/index.js","require":"./src/no-simd/index.cjs"},"./unbundled":{"import":"./src/simd/unbundled.js","require":"./src/simd/unbundled.cjs"},"./no-simd/unbundled":{"import":"./src/no-simd/unbundled.js","require":"./src/no-simd/unbundled.cjs"}},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.5.0_1780826199478_0.14404283797459927","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@perseveranza-pets/milo","version":"0.6.0","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.6.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"fca2a2e46d32df2db064c2505fc28968c5742f5f","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.6.0.tgz","fileCount":10,"integrity":"sha512-BmrAy0MlMKDeFwf1OBwlZJqNs4CY9u1nkSVaeWiBlnVMgV6olp3cxoI0K6YlfQA0s8luYutFxRVH2bYSIFAjyw==","signatures":[{"sig":"MEUCIQDXPU9b7WIfthuOWFrxpM1ZtmtYu9Z8km9PJbqKU3QVMAIgYGtRmgAcpKpniHDXTZbI+LHuExw2FrhCuXk54niEtiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":269394},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":"./src/simd/index.js","./no-simd":"./src/no-simd/index.js","./unbundled":"./src/simd/unbundled.js","./no-simd/unbundled":"./src/no-simd/unbundled.js"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.6.0_1780848501941_0.5732447622492394","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@perseveranza-pets/milo","version":"0.7.0","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.7.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"cbdd62d46b23f324a4c7dc43d6f758007caebffb","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.7.0.tgz","fileCount":10,"integrity":"sha512-SvzLxRFr+a61FzOEa25/fQhPm7mtdX7ehu7Lef0ndqu3JUHtwtGtXLKFULYDNINHf3dbl+L5ttnZVV21HHaorA==","signatures":[{"sig":"MEUCIQDiy277IGA+jYmIeJBk37fnoRhe5cAj8IbEc4/9GjIVDwIgFVdFMybl0Ej79Z2WtN6rjXPd+A32ztcLOvHCEM0rD3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":270726},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":"./src/simd/index.js","./no-simd":"./src/no-simd/index.js","./unbundled":"./src/simd/unbundled.js","./no-simd/unbundled":"./src/no-simd/unbundled.js"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"26.3.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.7.0_1781780188854_0.818947594841581","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@perseveranza-pets/milo","version":"0.8.0","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.8.0","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"023c25330ba1e7b45c8faa7968a76876986fa744","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.8.0.tgz","fileCount":10,"integrity":"sha512-FHZbcXj42DV6pjSgM6JPun4Zhl7SmWaeC4wX/L1k6m2Hv42gLtGtH/cqNkDKI7MW/5Tcc8li4T9O8qgHJhss4A==","signatures":[{"sig":"MEUCIQDGQQX7GQ6wBR0sA+VTUilAtqnk/hHVOEe80wIliwzcvgIgQxB89NRmo26ReDlETejRIBrbz4lZF3bai8FRaG/OrVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":343333},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":"./src/simd/index.js","./no-simd":"./src/no-simd/index.js","./unbundled":"./src/simd/unbundled.js","./no-simd/unbundled":"./src/no-simd/unbundled.js"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_nodeVersion":"26.3.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.8.0_1782384410199_0.609513722533624","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@perseveranza-pets/milo","version":"0.8.3","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.8.3","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"260dc335507aec9661e2dd0da88b65dd20dc1574","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.8.3.tgz","fileCount":10,"integrity":"sha512-Z9moAPp801e0fJiyL6O02s4sULgRiR6rDG4R/N62bgTLkELiC9g5DdpXj7ZwnpppxqQyA4V+slrh6iMQTzSMkA==","signatures":[{"sig":"MEUCIQCqJpjeKRYa2NU/UIB6ce4j66aKYHXGJd2fz4Ru7sddYgIgZebX4WJzX9+H/aBdn7FApokPtijubN3vJZUlMxA/s8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDx6GjFu3czH3xwgrkyrJkgL5mdonCvTiHVfSraWBdxCQIgEQ4Y/saJ0T5HQX+zoW6+dEGCqUi8cB7BbwOC61AiiwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":334528},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":"./src/simd/index.js","./no-simd":"./src/no-simd/index.js","./unbundled":"./src/simd/unbundled.js","./no-simd/unbundled":"./src/no-simd/unbundled.js"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.8.3_1790924505230_0.6570465825096325","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@perseveranza-pets/milo","version":"0.8.4","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.8.4","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"62ba9ee3b948290dcc20318f320f19a189ebf694","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.8.4.tgz","fileCount":10,"integrity":"sha512-zvU+LSKw2v5LSjFPMCLOTi/U9fZkMA6rkOeapPfo6jGy+8VUgGXD56NsG/NnUfOzsbcQxd0qokQxJ3arY3G6LQ==","signatures":[{"sig":"MEYCIQDKuz/MGCzL0j2rmCxjunU8wEeIRUG0Po04/HxFojCgoQIhAOhmi8HgHJ/UxVzFzZCHzCXzSHoBUJKl4FJbF7AUh1yZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDl73AqWj9LSw689aZDNK8kzXN09nm1BchlzioiufNHdgIhAO9TVcAsY4WkFd3/72Jzthxn//zqPmwkdkO1KkrqH4AE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":334528},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":"./src/simd/index.js","./no-simd":"./src/no-simd/index.js","./unbundled":"./src/simd/unbundled.js","./no-simd/unbundled":"./src/no-simd/unbundled.js"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.8.4_1790926238702_0.7654292740704522","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@perseveranza-pets/milo","version":"0.8.5","keywords":["http","parser"],"author":"Shogun <shogun@cowtech.it>","license":"ISC","_id":"@perseveranza-pets/milo@0.8.5","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"homepage":"https://sw.cowtech.it/milo","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"b5e4ea1ad818d4872920c57baaebdf4a62d0f0a0","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.8.5.tgz","fileCount":10,"integrity":"sha512-3pD4PymQbMjyOmI7bbojkAxcWVfftVnySN02LuNq9qynXTmpCk0wMQ6HaNxrk3lWCoVOpl8FptxRDpZmL3X6eA==","signatures":[{"sig":"MEQCIHA26iPwTspsQGT11/vArFsDkAdykm0sSB21pLvAz4XFAiB2d5VzOS95+tZPVhVawXNlathvvpnlpMA8BlKN7bLyNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID+HivhcXfVi12etNoOmQVSj5QF7h6+OEI2fT3ucOyqmAiAUIsU5SetrNE6ay3F0Um436bjwQAiWDfuEoGTGE17BPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335185},"main":"src/simd/index.js","type":"module","engines":{"node":">= 22.21.0"},"exports":{".":"./src/simd/index.js","./no-simd":"./src/no-simd/index.js","./unbundled":"./src/simd/unbundled.js","./no-simd/unbundled":"./src/no-simd/unbundled.js"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/milo_0.8.5_1790951204709_0.10943106261163948","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"@perseveranza-pets/milo@0.9.0","bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"dist":{"shasum":"f049e88f1629a233747ba01b7a759865f94ed270","tarball":"https://registry.npmjs.org/@perseveranza-pets/milo/-/milo-0.9.0.tgz","fileCount":10,"integrity":"sha512-xKgMjOayzCjSxmywLnqfHkp16w3ij+OKddJOJVOJnS1k3DJA2Wav7mpYv9JGsNOH6atXNs78xW2CfTMsvH0laQ==","signatures":[{"sig":"MEUCIC/0uWTUJGZa4N/3WTLJndpyM6tBfZxxNTtrZ+rtg8/LAiEA4iGFreb4ZEKFZO39BtaBhmW+POPP86tOJWnRv+xrGWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHGM8F9ql1xu3yyFHLxpmNa27oWl/6+P0tWJn4KttyX9AiEAhep4F2rQijATU5Iz+JL0T5ad+daHTpeIzSRE1sbUO9U="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@perseveranza-pets%2fmilo@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":319084},"main":"src/simd/index.js","name":"@perseveranza-pets/milo","type":"module","author":"Shogun <shogun@cowtech.it>","engines":{"node":">= 22.21.0"},"exports":{".":"./src/simd/index.js","./no-simd":"./src/no-simd/index.js","./unbundled":"./src/simd/unbundled.js","./no-simd/unbundled":"./src/no-simd/unbundled.js"},"license":"ISC","private":false,"version":"0.9.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"168b9ed3-482d-4771-ad8e-46178ec0d8d2"}},"homepage":"https://sw.cowtech.it/milo","keywords":["http","parser"],"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","directories":{},"maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/milo_0.9.0_1791209942068_0.6459627519758153"}}},"time":{"created":"2024-03-28T12:39:45.273Z","modified":"2026-10-05T14:19:02.922Z","0.1.0":"2024-03-28T12:39:45.541Z","0.2.0":"2024-04-06T12:15:10.683Z","0.2.1":"2024-05-18T07:20:22.001Z","0.3.0":"2025-04-21T07:10:54.493Z","0.4.0-alpha.5":"2026-06-01T04:50:42.394Z","0.4.0-alpha.6":"2026-06-01T05:43:56.603Z","0.4.0":"2026-06-01T05:50:00.874Z","0.5.0":"2026-06-07T09:56:39.622Z","0.6.0":"2026-06-07T16:08:22.076Z","0.7.0":"2026-06-18T10:56:28.985Z","0.8.0":"2026-06-25T10:46:50.343Z","0.8.3":"2026-10-02T07:01:45.362Z","0.8.4":"2026-10-02T07:30:38.835Z","0.8.5":"2026-10-02T14:26:44.817Z","0.9.0":"2026-10-05T14:19:02.185Z"},"bugs":{"url":"https://github.com/ShogunPanda/milo/issues"},"author":"Shogun <shogun@cowtech.it>","license":"ISC","homepage":"https://sw.cowtech.it/milo","keywords":["http","parser"],"repository":{"url":"git+https://github.com/ShogunPanda/milo.git","type":"git"},"description":"A fast and embeddable HTTP/1.1 parser.","maintainers":[{"name":"shogun_panda","email":"paolo@cowtech.it"}],"readme":"# @perseveranza-pets/milo\n\nMilo is a fast and embeddable HTTP/1.1 parser written in [Rust][rust].\n\nMilo can report parser activity through callbacks or through parser-owned event buffers. See the language-specific API docs for event decoding details: [JavaScript](./docs/js.md), [Rust](./docs/rust.md), and [C++](./docs/cpp.md).\n\n## Support Matrix\n\nMilo supports strict HTTP/1.1 message parsing for Rust, C++, and JavaScript via WebAssembly.\n\n| Target     | Status    | Artifact                                      |\n| ---------- | --------- | --------------------------------------------- |\n| Rust       | Supported | `milo` crate                                  |\n| C++        | Supported | `milo.h` and `libmilo.a`                      |\n| JavaScript | Supported | `@perseveranza-pets/milo` WebAssembly package |\n| CLI        | Supported | `milo-parser` binary                          |\n\nMilo intentionally rejects HTTP/0.9, HTTP/1.0, RTSP, obs-fold, bare LF, and bare CR. It does not parse HTTP/2 messages, except for strict `PRI * HTTP/2.0` switch-over detection.\n\nFor security and ambiguity reduction, Milo rejects request bodies on `GET` and `HEAD`. Responses to `HEAD` are application context: callers must use `skip_body` when they know a response has no body because it belongs to a `HEAD` request.\n\nUse `max_body_payload` when an integration needs to cap body payload consumed by a single parse call. `0` means unlimited. Reaching the limit returns normally with unconsumed input left for the next parse call.\n\nUse `suspend_after_headers` when an integration needs to inspect headers before body parsing starts. Parsing returns after consuming the header terminator and can continue with the next parse call.\n\nFor full parser scope, strictness, and protocol behavior, see [Milo Design](./docs/design.md).\n\n## How to use it (JavaScript via WebAssembly)\n\nInstall it from npm:\n\n```\nnpm install @perseveranza-pets/milo\n```\n\nFor CommonJS projects, install the CJS-only package instead:\n\n```\nnpm install @perseveranza-pets/milo-cjs\n```\n\nThen create a sample source file:\n\n```javascript\nimport { setup } from '@perseveranza-pets/milo'\n\n/*\n  Milo works using callbacks.\n\n  All callbacks have the same signature, which characterizes the payload:\n\n    * The current parser\n    * from: The payload offset.\n    * size: The payload length.\n\n  The payload parameters above are relative to the last data sent to the milo.parse method.\n\n  If the current callback has no payload, both values are set to 0.\n\n  The callbacks must be provided using setup and are named in snake case.\n*/\nconst milo = setup({\n  on_data (p, from, size) {\n    console.log(`Pos=${from} Body: ${message.slice(from, from + size).toString()}`)\n  }\n})\n\n// Prepare a message to parse.\nconst message = Buffer.from('HTTP/1.1 200 OK\\r\\nContent-Length: 3\\r\\n\\r\\nabc')\n\n// Allocate a memory in the WebAssembly space. This speeds up data copying to the WebAssembly layer.\nconst ptr = milo.alloc(message.length)\n\n// Create a buffer we can use normally.\nconst buffer = Buffer.from(milo.memory.buffer, ptr, message.length)\n\n// Create the parser.\nconst parser = milo.create()\n\n// Toggle on the callbacks you want to receive\nmilo.setActiveCallbacks(parser, milo.CALLBACK_ACTIVE_ON_DATA)\n\n// Now perform the main parsing using milo.parse. The method returns the number of consumed characters.\nbuffer.set(message, 0)\nmilo.parse(parser, ptr, message.length)\n\n// Cleanup used resources.\nmilo.destroy(parser)\nmilo.dealloc(ptr, message.length)\n```\n\nThe default JavaScript entry point uses the SIMD WebAssembly build. Use `@perseveranza-pets/milo/no-simd` when SIMD is not available, and add `/unbundled` to either entry point to load the external `.wasm` file instead of the bundled JavaScript module.\n\nThe WebAssembly release build uses immediate-abort panics: panics trap without unwinding or rich panic messages. The debug build also enables the `on_state_change` callback and provides more detailed WebAssembly errors.\n\nCommonJS projects can use the same entry points from `@perseveranza-pets/milo-cjs`:\n\n```javascript\nconst { setup } = require('@perseveranza-pets/milo-cjs')\n```\n\nFinally build and execute it using `node`:\n\n```bash\nnode index.js\n# Pos=38 Body: abc\n```\n\n## How to use it (Rust)\n\nAdd `milo-parser` to your `Cargo.toml`:\n\n```toml\n[package]\nname = \"milo-example\"\nversion = \"0.1.0\"\nedition = \"2024\"\npublish = false\n\n[dependencies]\nmilo-parser = \"0.4.0\"\n```\n\nCreate a sample source file:\n\n```rust\nuse core::ffi::c_void;\nuse core::slice;\n\nuse milo_parser::{Parser, CALLBACK_ACTIVE_ON_DATA};\n\nfn main() {\n  // Create the parser.\n  let mut parser = Parser::new();\n\n  // Prepare a message to parse.\n  let message = String::from(\"HTTP/1.1 200 OK\\r\\nContent-Length: 3\\r\\n\\r\\nabc\");\n  parser.context = message.as_ptr() as *mut c_void;\n\n  // Milo works using callbacks.\n  //\n  // All callbacks have the same signature, which characterizes the payload:\n  //\n  // p: The current parser.\n  // from: The payload offset.\n  // size: The payload length.\n  //\n  // The payload parameters above are relative to the last data sent to the parse\n  // method.\n  //\n  // If the current callback has no payload, both values are set to 0.\n  parser.callbacks.on_data = |p: &mut Parser, from: usize, size: usize| {\n    let message =\n      unsafe { std::str::from_utf8_unchecked(slice::from_raw_parts(p.context.add(from) as *const u8, size)) };\n\n    // Use the callback data.\n    println!(\"Pos={} Body: {}\", from, message);\n  };\n\n  // Toggle on the callbacks you want to receive\n  parser.active_callbacks |= CALLBACK_ACTIVE_ON_DATA;\n\n  // Now perform the main parsing using milo.parse. The method returns the number\n  // of consumed characters.\n  parser.parse(message.as_ptr(), message.len());\n}\n\n```\n\nFinally build and execute it using `cargo`:\n\n```bash\ncargo run\n# Pos=38 Body: abc\n```\n\n## How to use it (C++)\n\nFirst, let's download Milo release from GitHub.\n\nYou will need a static library file (for Linux/Unix/MacOS is `libmilo.a`) and a header file (`milo.h`).\n\nCreate a sample source file:\n\n```cpp\n#include \"milo.h\"\n#include <cinttypes>\n#include <cstdio>\n#include <cstring>\n\nint main() {\n  // Create the parser.\n  milo_parser::Parser* parser = milo_parser::milo_create();\n\n  // Prepare a message to parse.\n  const char* message = \"HTTP/1.1 200 OK\\r\\nContent-Length: 3\\r\\n\\r\\nabc\";\n\n  parser->context = (char*) message;\n\n  /*\n    Milo works using callbacks.\n\n    All callbacks have the same signature, which characterizes the payload:\n\n      * p: The current parser.\n      * from: The payload offset.\n      * size: The payload length.\n\n    The payload parameters above are relative to the last data sent to the milo_parse method.\n\n    If the current callback has no payload, both values are set to 0.\n  */\n  parser->callbacks.on_data = [](milo_parser::Parser* p, uintptr_t from, uintptr_t size) {\n    const char* payload = reinterpret_cast<const char*>(p->context) + from;\n\n    printf(\"Pos=%\" PRIuPTR \" Body: %.*s\\n\", from, static_cast<int>(size), payload);\n  };\n\n  // Toggle on the callbacks you want to receive\n  parser->active_callbacks |= milo_parser::CALLBACK_ACTIVE_ON_DATA;\n\n  // Now perform the main parsing using milo.parse. The method returns the number of consumed characters.\n  milo_parser::milo_parse(parser, reinterpret_cast<const unsigned char*>(message), strlen(message));\n\n  // Cleanup used resources.\n  milo_parser::milo_destroy(parser);\n}\n```\n\nAnd then you can compile using your preferred build system. For instance, let's try with [Clang]:\n\n```bash\nclang++ -std=c++11 -o example main.cc libmilo.a\n./example\n# Pos=38 Body: abc\n```\n\n## How to use it (CLI)\n\nInstall it from crates.io:\n\n```bash\ncargo install milo-parser\n```\n\nThe `milo-parser` binary reads an HTTP/1.1 message from standard input by default and prints the callbacks emitted by Milo:\n\n```bash\nprintf 'GET / HTTP/1.1\\r\\nHost: example.com\\r\\n\\r\\n' | milo-parser\n# offset=0 size=0 event=request\n# offset=0 size=0 event=message_start\n# offset=0 size=0 event=state_change\n# offset=0 size=3 event=method\n```\n\nEach output line uses this format:\n\n```text\noffset=$OFFSET size=$SIZE event=$EVENT\n```\n\nParser errors are emitted as callback lines too:\n\n```text\noffset=$OFFSET size=$SIZE event=error error=$ERROR description=\"$DESCRIPTION\"\n```\n\nUse `-f` or `--file` to parse a file:\n\n```bash\nmilo-parser --file request.http\n```\n\nBy default Milo autodetects request or response input. Use `-o` or `--request` to force request parsing, and `-i` or `--response` to force response parsing:\n\n```bash\nmilo-parser --request --file request.http\nmilo-parser --response --file response.http\n```\n\n## API\n\nSee the following files, according to the language you are using:\n\n- [JavaScript via WebAssembly API](./docs/js.md)\n- [Rust API](./docs/rust.md)\n- [C++ API](./docs/cpp.md)\n\n## Strictness Differences From llhttp\n\nMilo does not aim for byte-for-byte llhttp compatibility when lenient behavior would conflict with Milo's strict parser policy.\n\n- Milo rejects HTTP/0.9, HTTP/1.0, RTSP, obs-fold, bare LF, and bare CR.\n- Milo rejects normal HTTP/2 request and response messages.\n- Milo rejects request bodies on `GET` and `HEAD`.\n- Milo requires `skip_body` for application-known no-body response contexts such as responses to `HEAD`.\n- Milo validates protocol framing and syntax, but leaves application semantics to callers.\n\n## Security Boundaries\n\nMilo validates HTTP/1.1 syntax, message framing, protocol switching, connection management, and data-after-close behavior. Milo does not validate routing, authorization, representation semantics, URI normalization, `Host` policy, method-specific request-target forms, CONNECT authority-form, or full header field semantics unless they affect safe framing.\n\n## How it works?\n\nMilo is a simple state machine which copies data in only one optional case: automatically handling the unconsumed portion of the input data.\n\nIn all other cases, no data is copied and the memory footprint is very small as only a few dozen `bool`, `uintptr_t`, or `uint64_t` fields can represent the entire parser state.\n\n## Why?\n\nThe scope of Milo is to replace [llhttp] as [Node.js] main HTTP parser.\n\nThis project aims to:\n\n- Make it maintainable and verifiable using easy to read Rust code.\n- Be performant by avoiding any unnecessary data copy.\n- Be self-contained and dependency-free.\n\nTo see the rationale behind the replacement of llhttp, check Paolo's talk at [Vancouver's Node Collab Summit][vancouver-talk] in January 2023 ([slides][vancouver-slides]).\n\nTo see the initial disclosure of milo, check Paolo's talk at [NodeConf EU 2023][nodeconf-talk] in November 2023 ([slides][slides]).\n\n## Sponsored by\n\n[![NearForm](https://raw.githubusercontent.com/ShogunPanda/milo/main/docs/nearform.jpg)][nearform]\n\n## Contributing to milo\n\nSee [AGENTS.md](./AGENTS.md) for development setup, local and Docker builds, tests, and contribution guidelines.\n\n## Copyright\n\nCopyright (C) 2023 and above Paolo Insogna (paolo@cowtech.it) and NearForm (https://nearform.com).\n\nLicensed under the ISC license, which can be found at https://choosealicense.com/licenses/isc or in the [LICENSE.md](./LICENSE.md) file.\n\n[rust]: https://www.rust-lang.org/\n[webassembly]: https://webassembly.org/\n[nearform]: https://nearform.com\n[llhttp]: https://github.com/nodejs/llhttp\n[Node.js]: https://nodejs.org\n[vancouver-talk]: https://youtube.com/watch?v=L-VONzXQ944\n[vancouver-slides]: https://talks.cowtech.it/http-parser\n[nodeconf-talk]: https://youtube.com/watch?v=dcHbAeO_ccY\n[slides]: https://talks.paoloinsogna.dev/milo\n[isc]: https://choosealicense.com/licenses/isc\n[match]: https://doc.rust-lang.org/rust-by-example/flow_control/match.html\n[match-slice]: https://doc.rust-lang.org/rust-by-example/flow_control/match/destructuring/destructure_slice.html\n[Clang]: https://clang.llvm.org/\n","readmeFilename":""}