This looks cool! I'm writing an immutable data store, with my own hashes as IDs; I wonder how viable it would be to use IPFS CID's as my IDs?
I expect the trouble there would be how the data is chunked. If IPFS disagrees about the chunking we would have different CIDs.
.. also i'd need to implement all of this myself to get it in Rust. Hmm.