{"_id":"@davidcal/fec-raptorq","_rev":"12-235a47ebcfa7e3d6ba45972e153f4798","name":"@davidcal/fec-raptorq","dist-tags":{"latest":"1.11.0"},"versions":{"1.0.0":{"name":"@davidcal/fec-raptorq","version":"1.0.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.0.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"dist":{"shasum":"b007db8b6379056b4d1b14dd66a8a53e2d1607f5","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.0.0.tgz","fileCount":156,"integrity":"sha512-TBfEYAW35xV3cYG7LQB4ftAsEmrDoWUfGuenTQ5yJZa/pwHKuJjbUx8A4dvMkq+79TX5XDgj57mQwHnNLvQ6gQ==","signatures":[{"sig":"MEUCIHZkN8kWUoCdLfGv4ekb+OHrFBG3R6H2sx8pz0w788cwAiEA0GcGO2ptnz8c/pDF9IXe4VY5YTHjYT90MsoVUnbGIsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3415467},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"gitHead":"5b304a269095e608a9f6b1189ea1dc96ac5db3ff","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.0.0_1754784972177_0.017755264349039734","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@davidcal/fec-raptorq","version":"1.1.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.1.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"04334e27789d63533f18c98e99b4482eefca3a58","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.1.0.tgz","fileCount":160,"integrity":"sha512-hF1VzVpaj3Tx/Cqfb7iZZ758M6Yo0lwg+wDC9AkyxIq7wqAsa5OVX3IK5FT5F4USON7DvBsStmgwtmUYqT8YoQ==","signatures":[{"sig":"MEUCIAZdam5+4aVpNaVMknkwJ7l2jNuULbdLksN0tC7LsN+8AiEA0zr9bsmhX2h4HFVN83D0+L8E6x/ZjVYjtJoNhGURTFg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3443312},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"bdc0e8f5549dbe6fe501de1399359f73d964fcae","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.1.0_1754830448566_0.1590377534335099","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@davidcal/fec-raptorq","version":"1.2.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.2.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"3212a9cfd935d859bd198a0cfb48f5274ba14bc2","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.2.0.tgz","fileCount":162,"integrity":"sha512-F4rkarFYKlxNI8X7cpiKNJrN+/mcB/UUE31e2uqfHGzpQZeD1+QG8HpsvKq7NxQbT0U1j6T7NUVLFcIdTfzdSA==","signatures":[{"sig":"MEYCIQCfJVrxB6SjZlZ4XoeEsDjgTYb5Y+1vnvBPsjgToLfpdgIhAKnwXYEvU/nsklIR1KdDRV9UP7NbNeCJMI1e3Ht/LnEC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3413381},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"0a8185bc2a855c2b3937c67a940c1f32458cd1e2","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.2.0_1754855917737_0.9793715868354005","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@davidcal/fec-raptorq","version":"1.3.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.3.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"1614def5e6b769087e5240ac2203860e5bc8f004","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.3.0.tgz","fileCount":169,"integrity":"sha512-zMpiBOC2/dRWhdgXKq+2Wsw8A1SQxTwkD8C+eF+fwNskeIdWUcFkKY+kf3IbsWGexpCsyS/ICRQnPH51oPSLZA==","signatures":[{"sig":"MEYCIQDhtq6XybNeXwnqjwOIilpWRpaAjlMm8gvDPWZc+LkAlQIhANjfARaYCpVcdT9pW4ie01BZI8BGzlA3SfooRKQi3RxI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3423914},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"e47f7a43bad2889ae012f10d6cf52b8ea6bc813e","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.3.0_1755032518800_0.15500180164278854","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@davidcal/fec-raptorq","version":"1.4.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.4.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"a94c3a45db5d36a6fa6c327f0a1c08346fd9dac1","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.4.0.tgz","fileCount":171,"integrity":"sha512-MMlTf8VXzdRVZo+6h2p9+OCR0smgs16I7Y83k+UxANjCc1NJSCUuBrPWJr8zE4dwzdb68MSU8T/WcS1+0rzhqA==","signatures":[{"sig":"MEUCIGTLNy/rENhfE/TegXDfeK9XYa72y+rSj1bwyYql0w49AiEAwprnnxA0c0uwLqDoGbpzKcyylKBFG/fszN0bqTtqAa0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3449348},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"582ef18eac9b55daa700b75768242fcb45066fbf","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.4.0_1755116616022_0.8898989837060076","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@davidcal/fec-raptorq","version":"1.5.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.5.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"52c2df5d4e2377abce5d60f595e1f3ad06a6c8d6","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.5.0.tgz","fileCount":170,"integrity":"sha512-HcQOk/4fgc5DfDGd4IhsdO4QndJQixEH9Lp492WdOWFbWEd1dEGzkfRP337xT5WBPL2MC2E7DypqyU5WUHLtfQ==","signatures":[{"sig":"MEQCIBaWpvoqrUpyOiwDTLsJ7VzRsgHVqIFIfr+u/nEpuFypAiBKs5aeB0o583dGje23wfaX2A8VS751qR3fpYg4c4XC0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3450694},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"aaf0b90982e9dc8154dc836abb0c66b986ee307b","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.5.0_1755539462656_0.07487969553693175","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@davidcal/fec-raptorq","version":"1.6.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.6.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"973782999d94b9cad5990fb0b9721e8f4518b577","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.6.0.tgz","fileCount":170,"integrity":"sha512-yR2RNHLtF/0LZsUSVA/FKpjo/sDZ77IkypnTtmZ3ZYsfr3hlxrQsZIESchdAMZjec4FgbAilzNQLHlFa1cfZVQ==","signatures":[{"sig":"MEQCIAw8afOb7sCXl/hm648nOpYGsSoBHnzaCgDNoVEO5ns5AiBOa4krZ7t4A1U1019fuCA/HYeviERkLfNLA7g0HXDKZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3484320},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"571ddb96ee1e3aa4cfb15d53b48dcc8d04ad9e90","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.6.0_1755948448646_0.8822943101348903","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@davidcal/fec-raptorq","version":"1.7.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.7.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"1de034e882f23b5cf1d16636a78e32cdf4a5e0e2","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.7.0.tgz","fileCount":170,"integrity":"sha512-tHRtNuosVIrTmvujq8mzvC5srl0uPXXyxyarJHeUvp8CkW6kDnZVVfaJDNygMyJMy1YCwGNOfPc2lTX2BjLLig==","signatures":[{"sig":"MEUCIDkOCKxq/84xJxOgaMi3DF7R+ttb3UNOvfyU5Kc/+AfjAiEAvRaHr2sAtikC5tDUqy4GsXycPdEfNDopfs40wJqeS+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3493879},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"f3a548772c547ef2f1f581984def1f1a38881b6d","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.7.0_1755965557202_0.8587284611032397","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@davidcal/fec-raptorq","version":"1.8.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.8.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"5834181b1fc439f99dc2dce17d0afa8d0a3e978b","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.8.0.tgz","fileCount":170,"integrity":"sha512-r8CBZgW268zbUuGP0jyDajihHEOsG/sh2MoQ50ITRffBfLbvcFeW2s6bvMjSwFr9gfDO9b0lw25/Bky9Pg7pTQ==","signatures":[{"sig":"MEUCIQCBBmFQIwogN9xxCAlp7MJ6GJ8nZUok5IfG9WKCeawjygIgLljHuCbUoOVHi/G2vdHkFrx3pmXNdbYC3Bagzm0TTPk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3495182},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"198bc1000098de216d0915f5337f71c05255c525","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction, with additional functionality available","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.8.0_1756596154468_0.1346723467270725","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@davidcal/fec-raptorq","version":"1.9.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.9.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"ac5c65d253dc013d6b59af0876cb37be8b45fb34","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.9.0.tgz","fileCount":172,"integrity":"sha512-1JTYgyJQShGmylSk+4flVYUvLOTugXQtsZUYDaOFCIzhnU8e19Dg+pfaFnv1gY1YtqlUjHCfNCWPBQFroJGkGQ==","signatures":[{"sig":"MEYCIQDWef35Dm/qk0PcUAQsMcAUzP8WqXxbS9ArBekdPQNWVgIhALiNH84eaBQdyoOYkiZy2MOofcCvoAMKr5KdZ3H7rXLv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3495931},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"a4266efc67eb6e9c544c55c6d56d5aab87aed45f","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction, with additional functionality available","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.9.0_1756670964111_0.09641994517034025","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@davidcal/fec-raptorq","version":"1.10.0","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","_id":"@davidcal/fec-raptorq@1.10.0","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"dist":{"shasum":"fcd7d1659c8e38fbcdaf29b57750d93b7d6ef541","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.10.0.tgz","fileCount":178,"integrity":"sha512-mWjx1+f9eIXfkdjaro7/v6re+9++vHAmkWgoBF9j2dlgt8zh4MAvHAxbxIA1iPY42nZtAdiVKg++KbGlZLoHJA==","signatures":[{"sig":"MEUCICtQUErIII0lSsLOfEjyqW0S5w6FcPzpVEHt0dHtVUGQAiEAgoJBqXZTDIzdz4rZ6E3MYXcLBQCHTj08pC775uFCfbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3495281},"main":"src/index.js","type":"module","engines":{"node":">=12.0.0"},"exports":{".":"./src/index.js"},"gitHead":"a51352ee96b0aecb94445045b12456b2591caea1","scripts":{"test":"node src/index.test.js"},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"repository":{"url":"git+https://github.com/davidcallanan/fec-raptorq.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js wrapper for RaptorQ forward error correction, with additional functionality available","directories":{},"_nodeVersion":"23.5.0","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/fec-raptorq_1.10.0_1757007517571_0.018442838910490478","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@davidcal/fec-raptorq","version":"1.11.0","description":"Node.js wrapper for RaptorQ forward error correction, with additional functionality available","repository":{"type":"git","url":"git+https://github.com/davidcallanan/fec-raptorq.git"},"exports":{".":"./src/index.js"},"type":"module","main":"src/index.js","engines":{"node":">=12.0.0"},"scripts":{"test":"node src/index.test.js"},"keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"author":"","license":"MIT","dependencies":{"unsuspended-promise":"^1.0.1"},"publishConfig":{"access":"public"},"_id":"@davidcal/fec-raptorq@1.11.0","gitHead":"0437c83bfa469d4bd07ad6ab626ade31343a4ba3","bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"homepage":"https://github.com/davidcallanan/fec-raptorq#readme","_nodeVersion":"23.5.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-jC6pBv3njdjNlQ1UMved7xC9+XD/ZQ8DG0DR6zllHNEzskIjvJwTKPLfHXcfYjQFAWeVPXNtcvAhYHqhmMN1Og==","shasum":"e572ece2449db0d3a4512af01784bef8b8d6603b","tarball":"https://registry.npmjs.org/@davidcal/fec-raptorq/-/fec-raptorq-1.11.0.tgz","fileCount":183,"unpackedSize":3506629,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEMRl6Yj86r/qd9vRyJE5eplYUj3Xbg+sL5w/lCj6hVQAiEAvoNuqNr0CvlO/kQhc4abD+hcsa6KFxy24DGbIteT/O8="}]},"_npmUser":{"name":"davidcal","email":"david@callanan.ie"},"directories":{},"maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fec-raptorq_1.11.0_1757244272158_0.08105394055007542"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-10T00:16:12.067Z","modified":"2025-09-07T11:24:32.577Z","1.0.0":"2025-08-10T00:16:12.421Z","1.1.0":"2025-08-10T12:54:08.817Z","1.2.0":"2025-08-10T19:58:37.979Z","1.3.0":"2025-08-12T21:01:59.073Z","1.4.0":"2025-08-13T20:23:36.288Z","1.5.0":"2025-08-18T17:51:02.938Z","1.6.0":"2025-08-23T11:27:28.861Z","1.7.0":"2025-08-23T16:12:37.498Z","1.8.0":"2025-08-30T23:22:34.780Z","1.9.0":"2025-08-31T20:09:24.356Z","1.10.0":"2025-09-04T17:38:37.848Z","1.11.0":"2025-09-07T11:24:32.390Z"},"bugs":{"url":"https://github.com/davidcallanan/fec-raptorq/issues"},"license":"MIT","homepage":"https://github.com/davidcallanan/fec-raptorq#readme","keywords":["raptorq","forward-error-correction","fec","rfc6330","encoding","decoding"],"repository":{"type":"git","url":"git+https://github.com/davidcallanan/fec-raptorq.git"},"description":"Node.js wrapper for RaptorQ forward error correction, with additional functionality available","maintainers":[{"name":"davidcal","email":"david@callanan.ie"}],"readme":"# @davidcal/fec-raptorq\r\n\r\nThis npm package exposes `RaptorQ` ([RFC 6330](https://datatracker.ietf.org/doc/html/rfc6330)) erasure coding functionality in Node.js, providing a simple interface for Forward Error Correction (FEC).\r\n\r\nThis protocol allows you to add error correction to input data by converting it into a special array of chunks, called \"encoding packets\". These encoding packets can be delivered independently, and extra encoding packets are generated for redundancy. Once the decoder receives sufficient encoding packets to reconstruct the original data, the process stops. In a networking context, for instance, you might decide on an almost one-to-one mapping between encoding packets and UDP packets. For a hypothetical filesystem (that is somehow written in JavaScript), you could imagine a one-to-one mapping between encoding packets and the NAND flash blocks on an SSD.\r\n\r\nThe specific type of error correction employed by RaptorQ handles lost or dropped encoding packets only. It does not natively handle corruption within encoding packets, but this NPM package contains extra functionality to handle such corruption if enabled as part of the [`raptorq_suppa`](docs/raptorq_suppa.md) interface. It is advisable to enable the `ecc` functionality if packet corruption is expected in your environment.\r\n\r\n## Supported Targets\r\n\r\n✅ Linux x86_64\r\n\r\n✅ Linux aarch64\r\n\r\n✅ Windows x86_64\r\n\r\n❌ Windows aarch64 - Need to add cross-compilation support to `/internal/Dockerfile` and `/internal/build.sh`. Submit PR!\r\n\r\n❌ MacOS - Likely impossible due to licensing restrictions. Might add prebuilt binaries in future if feasible.\r\n\r\n❌ Web - WASM compilation may be possible in future. Performance would have to be assessed. Submit PR!\r\n\r\n## Install\r\n\r\n**Pnpm:**\r\n\r\n```\r\npnpm i @davidcal/fec-raptorq\r\n```\r\n\r\n**Npm:**\r\n\r\n```\r\nnpm install @davidcal/fec-raptorq\r\n```\r\n\r\n**Yarn:**\r\n\r\n```\r\nyarn add @davidcal/fec-raptorq\r\n```\r\n\r\n## Basic Usage\r\n\r\nThe `raptorq_raw` export exposes an RFC 6330-compliant interface.\r\n\r\n```javascript\r\nimport { raptorq_raw } from \"@davidcal/fec-raptorq\";\r\n\r\n// Encode using custom options\r\n\r\nconst options = {\r\n    symbol_size: 1400n,       // (T) Size of each symbol in bytes (max: 65535n); must be multiple of symbol_alignment\r\n    num_repair_symbols: 15n,  // Number of repair symbols per source block\r\n    num_source_blocks: 1n,    // (Z) Number of source blocks (max: 255n)\r\n    num_sub_blocks: 1n,       // (N) Number of sub-blocks per source block (max: 65535n)\r\n    symbol_alignment: 8n,     // (Al) Symbol alignment in bytes (min: 1n, max: 255n)\r\n};\r\n\r\nconst data = new Uint8Array(...);\r\n\r\nconst result = raptorq_raw.encode({ options, data });\r\n\r\nconst oti = await result.oti;\r\n\r\nfor await (const encoding_packet of result.encoding_packets) {\r\n    console.log(encoding_packet);\r\n}\r\n\r\n// Decode using OTI\r\n\r\nconst oti = ...;\r\n\r\nconst encoding_packets = (async function* () {\r\n    for await (const encoding_packet of some_data_source) {\r\n        yield encoding_packet;\r\n    }\r\n})();\r\n\r\nconst data = await raptorq_raw.decode({\r\n    oti,\r\n    encoding_packets,\r\n});\r\n```\r\n\r\nSee documentation below for detailed encoding and decoding usage.\r\n\r\n## Documentation\r\n\r\nThe raw RaptorQ interface is supplemented with a higher-level interface that enhance the developer experience and offers further useful functionality.\r\n\r\nSee the relevant documentation page for the interface you are interested in using:\r\n\r\n- [`raptorq_raw`](docs/raptorq_raw.md) - Raw RFC 6330-compliant interface with no additional functionality.\r\n- [`raptorq_suppa`](docs/raptorq_suppa.md) - Wrapper interface that provides better pre-negotiated strategy options and more, giving the programmer more control and simplifying the decoding process.\r\n\r\n## Changelog\r\n\r\nSee [`CHANGELOG.md`](CHANGELOG.md).\r\n\r\n## Contributing\r\n\r\nSee [`CONTRIBUTING.md`](CONTRIBUTING.md).\r\n\r\n## Future Plans\r\n\r\n- Improve performance.\r\n- Add wrapper API that provides FEC Payload ID customization to reduce overhead:\r\n  - Add disable SBN option. This would be useful if the developer has their own notion of SBNs or chunks files manually using hashes, saving 1 byte per FEC Payload ID.\r\n  - Assess possibility to expose custom ESI size option. Are ESIs generated sequentially?\r\n- Add wrapper API that helps with OTI negotiation and exposes simpler interface.\r\n- Explore how sub-blocks work and determine if any supplementary functionality would be useful.\r\n- Add Windows ARM support.\r\n- Add Web WASM support.\r\n- Add Mac OS support by uploading pre-built binaries.\r\n- Add better error handling.\r\n- Remove vibe-coding slop.\r\n- Wrap promises with `unsuspended_promise`.\r\n- Finish reading RFC 6330 to see if anything else interesting can be added.\r\n- Right now I am using an in-memory approach, I might look at enabling a file-based approach in future.\r\n- Prevent backlogs using backpressure mechanism.\r\n\r\n## Acknowledgements\r\n\r\nThis package wraps [a lovely Rust library](https://github.com/cberner/raptorq). Without this library, my package wouldn't exist. See `/internal/README.md` for details.\r\n\r\n## License\r\n\r\nSee `/LICENSE` and `/internal/raptorq/LICENSE`.\r\n","readmeFilename":"README.md"}