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