Skip to main content

Module source

Module source 

Source
Expand description

BlockSource:密文块的统一来源抽象。

对应设计文档 11 号 §1.2。 本地文件、分片集合、容器条目、局域网远程设备都实现同一个 trait, 使播放器、缩略图、扫描逻辑只写一遍。

这个抽象直接决定决策 D-04(局域网只传密文)能否干净落地—— 远程实现返回的就是密文,解密统一在上层完成,服务端永不接触明文。

§与设计文档的一处偏离

文档给出的草案是 #[async_trait]。此处实现为同步 trait,理由:

  1. payload::read_range 是纯 CPU 的解密逻辑。 若 BlockSource 为异步,会迫使它连带异步化,进而污染整条调用链。
  2. omy-core 是 MIT OR Apache-2.0 且要保持轻量,不应引入 async 运行时依赖。
  3. CLI 是同步程序,异步会凭空增加复杂度。

远程实现(omy-net)在自己内部桥接异步即可——它本就需要运行时, 由它承担这个成本比让 core 承担更合理。GUI 侧在后台线程调用,不阻塞 UI。

Structs§

ContainerEntryView
容器内单个条目的视图。
LocalFileSource
本地文件,按需 seek 读取,不整体载入内存。
MemorySource
内存中的完整文件。测试与小文件场景使用。

Traits§

BlockSource
密文块来源。

Functions§

decrypt_to_sink
把整个明文按窗口解密并交给 sink,内存占用与文件大小无关。
read_source_range
通过 BlockSource 读取明文区间。