2026-02-10 15:31:31 +00:00
|
|
|
# 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 `npmextra.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
|