- Add @git.zone/tsrust with linux_amd64/linux_arm64 cross-compilation - Scaffold Rust workspace with 5 crates: mailer-core, mailer-smtp, mailer-security, mailer-napi, mailer-bin - Fix all TypeScript compilation errors for upgraded dependencies (smartfile v13, mailauth v4.13, smartproxy v23) - Replace smartfile.fs/memory with @push.rocks/smartfs throughout codebase - Fix .ts import extensions to .js for NodeNext module resolution - Update DKIMSignOptions usage to match mailauth v4.13 API - Add MTA error classes with permissive signatures for legacy SMTP client - Replace removed DcRouter/StorageManager/deliverability imports with local interfaces
1.1 KiB
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-binis the binary target thattsrustbuilds for cross-compilationmailer-napiis 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.rsor[[bin]]entries) - Cross-compilation targets:
linux_amd64,linux_arm64(configured innpmextra.json) - Build output goes to
dist_rust/
Build
pnpm buildrunstsbuild tsfolders && tsrust- Note:
tsbuild tsfoldersrequires atsconfig.jsonat the project root (currently missing - pre-existing issue) tsrustindependently works and produces binaries indist_rust/
Key Dependencies (Rust)
tokio- async runtimetokio-rustls- TLShickory-dns(hickory-resolver) - DNS resolutionmail-auth- DKIM/SPF/DMARC (by Stalwart Labs)mailparse- MIME parsingnapi+napi-derive- Node.js bindingsring- crypto primitivesdashmap- concurrent hash maps