Relevant comment from ende76 on why brotli-rs is relatively slow and what the goals of the project are/were:
"Yes, performance has not been a focus point at all so far.
I've started this project as a a way to get familiar with Rust, and also with the Brotli spec.
For the implementation, I have made it a point to work only from the spec, while avoiding looking at the reference implementation, because another goal was helping to improve the Brotli spec itself.
I do believe that there are a number of places where copies could be avoided, and other places where I used clone() simply because at the time I was unable otherwise to appease the borrow checker.
For a performance-oriented implementation, I would probably take the test cases and experiences so far, and start over with a new implementation."
"Yes, performance has not been a focus point at all so far. I've started this project as a a way to get familiar with Rust, and also with the Brotli spec. For the implementation, I have made it a point to work only from the spec, while avoiding looking at the reference implementation, because another goal was helping to improve the Brotli spec itself. I do believe that there are a number of places where copies could be avoided, and other places where I used clone() simply because at the time I was unable otherwise to appease the borrow checker.
For a performance-oriented implementation, I would probably take the test cases and experiences so far, and start over with a new implementation."