3 ms·
> it's like a version control commit. As an alternative to mbox/maildir/whatevs I've been toying with a prototype of email storage that works in a content-addr
by lloeki 9y ago
> it's like a version control commit.
As an alternative to mbox/maildir/whatevs I've been toying with a prototype of email storage that works in a content-addressed way with objects very much like how git operates internally.
> Our Cyrus server already internally keeps a blobId which is a digest of the binary content of each MIME part. Which means you can easily tell that two attachments are identical without reading the contents or guessing based on size and name.
This deduplication property then comes naturally from the above design, and not just for attachments but also for email headers and bodies.
Many other things come easily such as rsync "just working" for fetching, or making use of git packs[0]
[0]: https://git-scm.com/docs/pack-format https://git-scm.com/docs/pack-format
- brongondwana 9y agoYou're not the first person to think of using git-like storage for email, and you won't be the last! Sadly deduplication isn't quite that easy - while the binary formats might be the same, MIME is very un-roundtrip-friendly when you start from the MIME structure. There are many ways to encode the same bytes, so if you need to reconstruct the raw bytes (FETCH RFC822) then you need a way to recover those original bytes. I've started work on that a few times, but it's never been worth the effort to make it stable.