Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
lacre:ideas [2024/03/16 18:26] – add Milter pfmlacre:ideas [2024/07/12 09:48] (current) – add: observability pfm
Line 36: Line 36:
  
 With Lacre being a Milter, it would become available for a wider audience (i.e. for Postfix //and// Sendmail admins). 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;
 +
 +===== Make Lacre observable =====
 +
 +Monitoring Lacre's performance and correctness requires following logs at the moment.
 +
 +We could expose endpoints with Lacre statistics for monitoring tools to consume, or consider other observability solutions.
 +
 +Things to check:
 +  * [[https://ebpf.io/|eBPF]];
 +  * [[https://opentelemetry.io/|Open Telemetry]] (supports [[https://opentelemetry.io/docs/languages/python/|Python]] and [[https://opentelemetry.io/docs/languages/rust/|Rust]]);
 +