]> Sergey Matveev's repositories - public-inbox.git/commit
eml: pure-Perl replacement for Email::MIME
authorEric Wong <e@yhbt.net>
Thu, 7 May 2020 21:05:48 +0000 (21:05 +0000)
committerEric Wong <e@yhbt.net>
Sat, 9 May 2020 08:59:10 +0000 (08:59 +0000)
commit57af9c8d0bedafac3267b5b42f963bb8aa5c2ea1
tree7bf424ee964031160a2c5c0722e0a29a837956fb
parent93e3d34ff8d5f981fe4bdd4a6cddb96af6785008
eml: pure-Perl replacement for Email::MIME

Email::MIME eats memory, wastes time parsing out all the
headers, and some problems can't be fixed without breaking
compatibility for other projects which depend on it.

Informal benchmarks show a ~2x improvement in general
stats gathering scripts and ~10% improvement in HTML
view rendering.

We also don't need the ability to create MIME messages, just
parse them and maybe drop an attachment.

While this isn't the zero-copy or streaming MIME parser of my
dreams; it's still an improvement in that it doesn't keep a
scalar copy of the raw body around along with subparts.  It also
doesn't parse subparts up front, so it can also replace our uses
of Email::Simple.
MANIFEST
lib/PublicInbox/Eml.pm [new file with mode: 0644]
lib/PublicInbox/TestCommon.pm
t/eml.t [new file with mode: 0644]