From 572ba18650e9a11253575597a9bff7b777c8b52a Mon Sep 17 00:00:00 2001 From: Andris Reinman Date: Mon, 23 Oct 2017 13:54:31 +0300 Subject: [PATCH] Updated README --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 1cdc5263..433c2aff 100644 --- a/README.md +++ b/README.md @@ -104,20 +104,20 @@ Read about Wild Duck security implementation from the [Wiki](https://github.com/ ### What are the killer features? 1. **Stateless.** Start as many instances as you want. You can start multiple Wild Duck instances in different machines and as long as they share the same MongoDB and Redis settings, users can connect to any instances. This is very different from the traditional IMAP servers where a single user always needs to connect (or be proxied) to the same IMAP server. Wild Duck keeps all required state information in MongoDB, so it does not matter which IMAP instance you use. -2. **Centralized authentication** which allows modern features like 2FA, application specific passwords, authentication scopes, revoking authentication tokens, audit logging and even profile files to auto configure Apple email clients without providing master password -3. **Works on any OS including Windows.** At least if you get MongoDB and Redis running first. -4. Focus on **internationalization**, ie. supporting email addresses with non-ascii characters -5. **Deduplication of attachments.** If the same attachment is referenced by different messages then only a single copy of the attachment is stored. Attachment is stored in the encoded form (eg. encoded in base64) to not break any signatures so the resulting encoding must match as well. -6. Access messages both using **IMAP and HTTP API**. The latter serves parsed data, so no need to fetch RFC822 messages and parse out html, plaintext content or attachments. It is super easy to create a webmail interface on top of this. -7. Built in **address labels**: _username+label@example.com_ is delivered to _username@example.com_ -8. Dots in usernames and addresses are informational only. username@example.com is the same as user.name@example.com -9. **HTTP Event Source** to push modifications in user email account to browser for super snappy webmail clients -10. **Super easy to tweak.** The entire codebase is pure JavaScript, so there's nothing to compile or anything platform specific. If you need to tweak something then change the code, restart the app and you're ready to go. If it works on one machine then most probably it works in every other machine as well. -11. **Better disk usage**. Attachment deduplication and MongoDB compression yield in about 40% smaller disk usage as the sum of all stored email sizes. - -**Demo video for HTTP push** - -[![Stream Push Demo](https://img.youtube.com/vi/KFoO8x0mEpw/0.jpg)](https://www.youtube.com/watch?v=KFoO8x0mEpw) +2. **Scalable** as Wild Duck uses sharded MongoDB cluster for the backend storage. If you're running out of space, add a new shard. +3. **No SPOF.** You can run multiple instances of every required service. +4. **Centralized authentication** which allows modern features like 2FA, application specific passwords, authentication scopes, revoking authentication tokens, audit logging and even profile files to auto-configure Apple email clients without master password +5. **Works on any OS including Windows.** At least if you get MongoDB and Redis running first. +6. Focus on **internationalization**, ie. supporting email addresses with non-ascii characters +7. **Deduplication of attachments.** If the same attachment is referenced by different messages then only a single copy of the attachment is stored. +8. Access messages both using **IMAP and HTTP API**. The latter serves parsed data, so no need to fetch RFC822 messages and parse out html, plaintext content or attachments. It is super easy to create a webmail interface on top of this. +9. Built in **address labels**: _username+label@example.com_ is delivered to _username@example.com_ +10. Dots in usernames and addresses are informational only. username@example.com is the same as user.name@example.com +11. **HTTP Event Source** to push modifications in user email account to browser for super snappy webmail clients +12. **Super easy to tweak.** The entire codebase is pure JavaScript, so there's nothing to compile or anything platform specific. If you need to tweak something then change the code, restart the app and you're ready to go. If it works on one machine then most probably it works in every other machine as well. +13. **Better disk usage**. Attachment deduplication and MongoDB compression yield in about 40% smaller disk usage as the sum of all stored email sizes. +14. **Extra security features** like automatic GPG encryption of all stored messages or authenticating with U2F +15. **Exposed logs.** Users have access to logs concerning their account. This includes security logs (authentication attempts, changes on account) and also message logs ### Isn't it bad to use a database as a mail store?