serde-ply: Modern speed & convenience for a 90s format
https://github.com/ArthurBrussee/serde_ply
Just released my first crate! While ply files are a format from the 90s, they are still very much around for computer graphics and have somehow become the standard for "gaussian splatting" (shameless plug). The rust ecosystem has a crate for ply files https://github.com/Fluci/ply-rs, but in my testing it's about ~4-7x slower than serde-ply.
serde-ply aims to get all the modern serde conveniences without sacrificing too much performance (hitting about ~1 GB/s, in line with other libraries).
As ply files are basically big "tables", it's also possible to stream the results row by row. I've added some methods to read ply files in "chunks". These chunks of data also can also come from an async reader, so while the library has 0 async code it is compatible with async reading.
I hope it's useful to more people, if nothing else I've enjoyed learning a lot about serde's innards! I'd love it if some Serde experts showed up and made this even faster :)