The main issue with that library is that we end up with an enormous dataset per race:
Logging one lap on Monza Junior (using one car, in practice mode, and taking around one minute of racing), it generated around 90MB of logs, which is roughly 32k objects of RT_CAR_INFO data. It's a lot of data, and we may need to narrow down the information we want to track. We could also try fixing the Unicode issues to shrink down the log size. Nonetheless, we will still end up with an enormous dataset.
I don’t have much to say about writing a telemetry scraper from scratch. However, there are two key considerations to keep in mind.
You should use a highly performant programming language to develop a scraping module and use the Node.js bindings to use it within your app. From my experiences, I can recommend Rust or Golang. Both are designed to perform well for low-level, resources-needy tasks.
Using C++ will be fine as well, however it’s a lower-level language with a steeper learning curve.
In any case, it's important to focus on defining a clear set of what telemetry data should be gathered and skip anything else. This way, you can keep the output as small as possible.
It seems that there are potential paths forward for the telemetry gathering:
use an existing npm package and evaluate its performance and suitability for the project's needs. If what the package provides is sufficient, it could be forked and with necessary modifications added, including the addition of TypeScript and handling Race Start, Race End, and Race Lap event
write the telemetry gathering module from scratch in performance-oriented programming language.
For Rust, there exist a library (or crate in Rust’s lingo) for geometry handling
For C++ this approach may require additional effort due to some technical nitpicks and the use of C*++ Boost* library.
Regardless of the chosen path, the team should add data normalisation and usage of protobuf or similar for transferring the datasets.