I'd like to ask for feedback on this small crate, whose purpose is to allow putting io::Read
and io::Write
instances to a background thread.
https://github.com/markschl/thread_io
For me, this is mainly useful for reading from / writing to compressed files in the background, which is typically expensive CPU-wise. I've tested the code successfully as part of this tool, and found nice performance improvements with compressed input/output, if there was some expensive computation happening in the main thread. I've tested the crate quite extensively and tried to make sure that errors are handled well. Still I'd like to be sure that there isn't another, maybe easier way of solving this problem using existing crates.
Note: I should credit the nice fastq-rs library, which implements a background reader, and from which I got the original idea. The implementation in my library is slightly different and is not restricted to using readers with static lifetimes.
I'd be very interested on feedback, and whether it could be useful to publish this crate on crates.io. Thank you very much!