SMTP server now - Samotop

Hi, I’ve been toying with this study project for a while and I must say I’m kinda excited! When I started, I’ve just about heard of Rust. Now I’m getting the knack of it. Today, I’ve got a somewhat working SMTP server utilizing PEG grammar and async processing built on top of tokio and futures. It only stores emails to the stdout and has the minimal set of commands to receive a mail, but I think it’s a big thing for me at least!

I’d be super happy if someone feels like trying it out or reviewing the code and giving me feedback.

Special thanks to @shepmaster !!! He would jump on every question I asked on SO. I wonder, does he sleep? Thanks a lot.

I’ve got the project in gitlab https://gitlab.com/BrightOpen/BackYard/Samotop with CI running.

Kind regards and many thanks

8 Likes

Hi friends,

Samotop has been collecting dust while waiting for async/await to stabilize. No more excuses, it is moving to async-std 1.6.2 now. WIP - running SMTP server with broken tests, outdated docs, but async at last in https://gitlab.com/BrightOpen/BackYard/Samotop/-/tree/feature/async-std-upgrade

Meanwhile, @azul upgraded the grammar to PEG 0.6 and I've switched to rustls so all libs are at latest versions!

Thank you and feel free to implement your own mail service - example in ConsoleMail

1 Like

Samotop major preview release 0.11.1 brings:

  • Unix domain socket server and client.
  • LMTP server and client.
  • Simple maildir delivery.
  • Rustls as well as native-tls encryption built in for both client and server.
  • Other encryption tools can be hooked in implementing simple traits.
  • Examples! including TCP, Unix socket, command stdio servers, dirmail and LMTP delivery.
  • Improved modularity and cleaner API for extensions - bring it on.
  • Plenty of bug fixes, refactors, simplifications

I'm delighted with how it's taking shape. May it grow stronger... https://crates.io/crates/samotop

3 Likes