{"_id":"6cclab-ibt-stream","name":"6cclab-ibt-stream","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"6cclab-ibt-stream","version":"1.0.0","description":"Parse iRacing telemetry data using a stream","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"dev":"tsx src/test.ts","build":"tsc","prepare":"pnpm build","lint":"tslint -c tslint.json src/**/*.ts"},"keywords":["iracing","telemetry","parse","stream"],"author":{"name":"Schubert Cardozo"},"license":"ISC","devDependencies":{"@types/js-yaml":"^4.0.5","@types/node":"^20.16.2","tslint":"^6.1.3","tsx":"^4.19.0","typescript":"^5.1.6"},"peerDependencies":{"@irsdk-node/types":"^3.0.0"},"dependencies":{"binary-parser":"^2.2.1","js-yaml":"^4.1.0"},"_id":"6cclab-ibt-stream@1.0.0","gitHead":"cacc560ea4acd96598705d098268cae00fd16cae","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"integrity":"sha512-RYXIIURaDdiAuRAjjdKKCKNQve1tudA3PIVlNZs/i0pRq1hG4NSxt5AdW/rdxU0kt4F6++J8t7vZnXwr3fNRhw==","shasum":"0a29f4a5721694f0a620c4f66300903a69469def","tarball":"https://registry.npmjs.org/6cclab-ibt-stream/-/6cclab-ibt-stream-1.0.0.tgz","fileCount":23,"unpackedSize":29684,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHKx7N8w8Jh5IBvNUX6as6MVXQxzAteuOIIAHAngxZpHAiEA/3h84iSZqDo/8ckD6GSnuyLU+UhVksPljYBXHGaMpZo="}]},"_npmUser":{"name":"anpato","email":"anpato1994@gmail.com"},"directories":{},"maintainers":[{"name":"anpato","email":"anpato1994@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/6cclab-ibt-stream_1.0.0_1724814611753_0.6723660052076188"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-28T03:10:11.752Z","1.0.0":"2024-08-28T03:10:11.928Z","modified":"2024-08-28T03:10:12.272Z"},"maintainers":[{"name":"anpato","email":"anpato1994@gmail.com"}],"description":"Parse iRacing telemetry data using a stream","keywords":["iracing","telemetry","parse","stream"],"author":{"name":"Schubert Cardozo"},"license":"ISC","readme":"# ibt-stream\n\n![Github License](https://img.shields.io/badge/license-MIT-yellowgreen.svg)\n\n## Description\n\nParse iRacing telemetry data using a stream.\n\n## Installation\n\nTo install:\n\n```\nnpm install ibt-stream\n```\n\n## Usage\n\n```\nimport { IbtStream } from 'ibt-stream';\n\nfs.createReadStream('./telemetry.ibt')\n  .pipe(new IbtStream())\n  .on('data', (data) => {\n    switch (data.type) {\n      case 'IbtHeader':\n        console.log('Header', data.value);\n        break;\n      case 'IbtVarHeaders':\n        console.log('VarHeaders', data.value);\n        break;\n      case 'IbtSessionInfo':\n        console.log('SessionInfo', data.value);\n        break;\n      case 'IbtSample':\n        console.log('Sample', data.value);\n        break;\n      default:\n    }\n  });\n\n```\n\nThe process is CPU bound, and if you would like to stream the samples at a lower tick rate to limit CPU, you can pass in `tickRate` in the constructor options which accepts a value betwen 1 and 1000 (samples per second).\n\n```\nfs.createReadStream('./telemetry.ibt')\n  .pipe(new IbtStream({ tickRate: 60 }))\n\n```\n\nTo parse a Telemetry file from an AWS S3 Bucket\n\n```\nconst s3 = new S3({ ...s3options });\n\nconst s3.getObject({ ...params }).createReadStream()\n  .pipe(new IbtStream());\n\n```\n\n## License\n\n    Copyright @ MIT. All rights reserved.\n\n    Licensed under the MIT license.\n\n## Thanks\n\nThanks to https://github.com/SkippyZA/ibt-telemetry for the format.\n","readmeFilename":"README.md"}