我正在使用Actix-web编写一个Web服务器。我有一个缓存组件,它将一些数据存储为Arc<[u8]>
,现在我想直接发送这些数据,而不需要进行不必要的复制。
我没有找到任何直接的方法来实现这一点,所以我试图找出如何为我的 Package 器类型实现MessageBody
trait,但我在将Arc<[u8]>
转换为actix_web::web::Bytes
时卡住了。文档实际上谈到了Bytes
支持Arc
,但我找不到任何实际使用它的方法。
在Actix-web中为Arc<[u8]>
体提供服务的最佳方式是什么?
1条答案
按热度按时间hl0ma9xz1#
考虑到
Bytes
是字节数组的引用计数和写时复制容器,它在语义上与Arc<[u8]>
非常相似,但有一些额外的功能。我建议将缓存改为存储Bytes
值,而不是Arc<[u8]>
,然后问题就消失了。