On Fri, 30 Aug 2013 23:35:28 -0400, R. David Murray wrote:

>No response means nobody objects, right? :)

Hi, David.  You can count me among those who are interested but busy.  :)

My main problem with the existing email package is that it requires entire
message parts to be held in memory, making it unusable on constrained
systems like low-power personal servers.  The issue concerns me right now
because I'm working on some email software that targets these systems, and
it takes only a single message with a half-gigabyte attachment to fill all
available RAM.  I believe such systems will become more widespread in the
coming years, mainly due to the availability of cheap hardware and
increasing privacy concerns with big webmail providers.  Budget VPS hosts,
mini-notebooks, smart phones, tablets, NAS servers, plug computers, and
other platforms are also affected.  That leaves very few classes of common
hardware on which the existing library can handle messages with midsize
attachments: basically just workstations and medium-to-large servers.

If python's email package is going to handle today's correspondence on a
wide variety of systems, I think it's going to need support for data streams
and file section references, rather than hoping that there is always enough
free memory to hold the messages, bodies, and MIME parts that turn up in the
real world.

With that in mind, your new API looks promising.  I like the fact that it
opens the door to content managers that could accept/produce socket-like
objects, files, (filename, offset, size) tuples, iterators, etc.  Of course,
such things can work only if the library's parsing and flattening code can
stream data to and from those objects. 

I remember you mentioning in the past that data streaming was a development
goal.  Is it a priority yet?  Even if not, would this be a good time to
define a streaming interface for creating/reading/writing custom content
objects, so that the standard library's internal code can eventually be
rewritten to use it?  I'd hate to see everyone's shiny new content managers
end up blocking progress on data streaming due to a design incompatibility.

Forest
_______________________________________________
Email-SIG mailing list
Email-SIG@python.org
Your options: 
https://mail.python.org/mailman/options/email-sig/archive%40mail-archive.com

Reply via email to