Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streaming MIME parsing + SMTP server performance #9

Open
xeoncross opened this issue Jun 18, 2019 · 0 comments
Open

Streaming MIME parsing + SMTP server performance #9

xeoncross opened this issue Jun 18, 2019 · 0 comments

Comments

@xeoncross
Copy link

xeoncross commented Jun 18, 2019

Instead of manually trying to buffer an entire email message into RAM and then process it consider using https://github.com/emersion/go-smtp who has built (from what I can see) the world's best OS Go email parsing libraries (MIME, DKIM, SMTP, etc...) already including full streaming support for MIME envelope creation and parsing and textproto for decoding/encoding.

I personally tried to beat his package forking Mark Hale's https://github.com/Xeoncross/smtpd (which he forked from Brad Fitzpatrick's go-smtpd) to support streaming support via a custom https://github.com/Xeoncross/mimestream implementation and still failed to reach proper performance.

Please, consider abandoning your current SMTP library for this streaming performance-orientated SMTP server/client. Lets try to reduce the duplicated work needed for important projects like personal email servers. I'll try to add your library to my benchmarks when I get a chance to show the gains you could have.

Also, note that you might be able to borrow ideas from https://github.com/emersion/maddy and https://github.com/foxcpp/go-imap-sql

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant