Files
smartmta/readme.hints.md

1.1 KiB

Project Hints

Rust Workspace

  • Rust code lives in rust/ with a Cargo workspace
  • Crates: mailer-core, mailer-smtp, mailer-security, mailer-napi, mailer-bin
  • mailer-bin is the binary target that tsrust builds for cross-compilation
  • mailer-napi is a cdylib for N-API bindings (not built by tsrust, needs separate napi-rs build pipeline)
  • tsrust only supports binary targets (looks for src/main.rs or [[bin]] entries)
  • Cross-compilation targets: linux_amd64, linux_arm64 (configured in .smartconfig.json)
  • Build output goes to dist_rust/

Build

  • pnpm build runs tsbuild tsfolders && tsrust
  • Note: tsbuild tsfolders requires a tsconfig.json at the project root (currently missing - pre-existing issue)
  • tsrust independently works and produces binaries in dist_rust/

Key Dependencies (Rust)

  • tokio - async runtime
  • tokio-rustls - TLS
  • hickory-dns (hickory-resolver) - DNS resolution
  • mail-auth - DKIM/SPF/DMARC (by Stalwart Labs)
  • mailparse - MIME parsing
  • napi + napi-derive - Node.js bindings
  • ring - crypto primitives
  • dashmap - concurrent hash maps