#codec #tor #data-encoding #arti

tor-bytes

为Tor所使用的字节导向数据编码和解码提供辅助函数

29个版本 (15个重大更新)

0.21.0 2024年8月1日
0.20.0 2024年6月27日
0.19.0 2024年6月5日
0.10.0 2024年2月5日
0.0.0 2021年6月24日

#251 in 编码

Download history 578/week @ 2024-04-26 455/week @ 2024-05-03 365/week @ 2024-05-10 355/week @ 2024-05-17 862/week @ 2024-05-24 739/week @ 2024-05-31 510/week @ 2024-06-07 1297/week @ 2024-06-14 1442/week @ 2024-06-21 1661/week @ 2024-06-28 444/week @ 2024-07-05 457/week @ 2024-07-12 712/week @ 2024-07-19 1179/week @ 2024-07-26 1559/week @ 2024-08-02 1045/week @ 2024-08-09

每月4,723次下载
用于40个crate(10个直接使用)

MIT/Apache

220KB
3K SLoC

tor-bytes

将事物解码/编码为字节的实用工具。

概述

tor-bytes crate是Arti项目的一部分,该项目旨在用Rust实现Tor。Arti中的其他crate使用它来构建和处理Tor协议中所有字节编码的对象。对于文本目录项,请参阅tor-netdoc crate。

此crate通常适用于编码和解码字节导向格式,这些格式不够规范,无法使用serde,也不够复杂,不需要完整的元语言。它可能不适合处理大于几KB大小的任何事物。

替代方案

std::io中的Reader/Writer traits更适合处理可能因IO问题而失败的操作。此crate无法处理此类操作:它是用于处理已存在于内存中的事物。

待办事项:考虑在这里更广泛地使用"bytes" crate。

待办事项:"untrusted" crate有类似的目标,但采取更多步骤以确保它永远不会panic。也许我们应该看看是否可以从中学到一些技巧。

待办事项:我们是否真的想将Reader保留为结构体,而将Writer保留为特质?

内容与概念

此crate围绕四个关键类型构建

您想要编码或解码的每个对象都应该分别实现 WriteableReadable

实现这些特质后,您可以使用 Reader 和 Writer 来处理您的类型及其相关类型。

许可证:MIT OR Apache-2.0

依赖项

~15MB
~288K SLoC