Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision |
lacre:ideas [2023/12/16 15:56] – add setup.py example pfm | lacre:ideas [2024/04/14 20:34] (current) – add: rewrite in Rust pfm |
---|
| |
Read more in [[https://docs.python.org/3/howto/logging-cookbook.html#use-of-contextvars|Logging Cookbook - Use of contextvars]] and documentation of [[https://docs.python.org/3/library/contextvars.html|contextvars]] module. | Read more in [[https://docs.python.org/3/howto/logging-cookbook.html#use-of-contextvars|Logging Cookbook - Use of contextvars]] and documentation of [[https://docs.python.org/3/library/contextvars.html|contextvars]] module. |
| |
| ===== Provide a Milter ===== |
| |
| Instead of using after-queue mail filters, we could use Sendmail 8's [[https://www.postfix.org/MILTER_README.html|Milter API]]. They can be written in Python too (see [[https://pymilter.org/|Python milters]]). |
| |
| With Lacre being a Milter, it would become available for a wider audience (i.e. for Postfix //and// Sendmail admins). |
| |
| ===== Rewrite in Rust ===== |
| |
| Since Python has some limitations (e.g. its ''email'' module makes it hard to process messages without modifying their contents), I'm considering rewriting Lacre in Rust. |
| |
| Crates I consider using: |
| |
| * [[https://crates.io/crates/actix-server|actix-server]], a generic TCP server --- I assume it's something like Python's ''asyncio''; |
| * [[https://github.com/rpgp/rpgp|rpgp]], a Rust crate to work with Open PGP; |
| * [[https://crates.io/crates/email-address-parser|email-address-parser]], an RFC-compliant address parser; |
| * [[https://crates.io/crates/mime|mime]], a strongly typed MIME-Type support; |
| * something to parse MIME--compliant messages; |
| |