diff --git a/changelog.md b/changelog.md index 7bd1764..a7ebbdd 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,13 @@ # Changelog +## 2026-02-10 - 2.4.0 - feat(docs) +document Rust-side in-process security pipeline and update README to reflect SMTP server behavior and crate/test counts + +- Clarifies that the Rust SMTP server accepts the full SMTP protocol and runs the security pipeline in-process (DKIM/SPF/DMARC verification, content scanning, IP reputation/DNSBL) to avoid IPC round-trips +- Notes that Rust now emits an emailReceived IPC event with pre-computed security results attached for TypeScript to use in routing/delivery decisions +- Updates mailer-smtp crate description to include the in-process security pipeline and increments its test count from 72 to 77 +- Adjusts TypeScript directory comments to reflect removal/relocation of the legacy TS SMTP server and the smtpclient path + ## 2026-02-10 - 2.3.2 - fix(tests) remove large SMTP client test suites and update SmartFile API usage diff --git a/readme.md b/readme.md index 49e4448..48d0d6e 100644 --- a/readme.md +++ b/readme.md @@ -70,10 +70,10 @@ After installation, run `pnpm build` to compile the Rust binary (`mailer-bin`). **Data flow for inbound mail:** -1. Rust SMTP server accepts the connection and handles the SMTP protocol -2. On `DATA` completion, Rust emits an `emailReceived` event via IPC -3. TypeScript processes the email (routing, scanning, delivery decisions) -4. TypeScript sends the processing result back to Rust via IPC +1. Rust SMTP server accepts the connection and handles the full SMTP protocol +2. On `DATA` completion, Rust runs the security pipeline **in-process** (DKIM/SPF/DMARC verification, content scanning, IP reputation check) — zero IPC round-trips +3. Rust emits an `emailReceived` event via IPC with pre-computed security results attached +4. TypeScript processes the email (routing decisions using the pre-computed results, delivery) 5. Rust sends the final SMTP response to the client ## Usage @@ -569,7 +569,7 @@ Performance-critical operations are implemented in Rust and communicate with the |---|---|---| | `mailer-core` | ✅ Complete (26 tests) | Email types, validation, MIME building, bounce detection | | `mailer-security` | ✅ Complete (22 tests) | DKIM sign/verify, SPF, DMARC, IP reputation/DNSBL, content scanning | -| `mailer-smtp` | ✅ Complete (72 tests) | Full SMTP protocol engine — TCP/TLS server, STARTTLS, AUTH, pipelining, rate limiting | +| `mailer-smtp` | ✅ Complete (77 tests) | Full SMTP protocol engine — TCP/TLS server, STARTTLS, AUTH, pipelining, in-process security pipeline, rate limiting | | `mailer-bin` | ✅ Complete | CLI + smartrust IPC bridge — security, content scanning, SMTP server lifecycle | | `mailer-napi` | 🔜 Planned | Native Node.js addon (N-API) | @@ -598,8 +598,7 @@ smartmta/ │ ├── mail/ │ │ ├── core/ # Email, EmailValidator, BounceManager, TemplateManager │ │ ├── delivery/ # DeliverySystem, Queue, RateLimiter -│ │ │ ├── smtpclient/ # SMTP client with connection pooling -│ │ │ └── smtpserver/ # Legacy TS SMTP server (socket-handler fallback) +│ │ │ └── smtpclient/ # SMTP client with connection pooling │ │ ├── routing/ # UnifiedEmailServer, EmailRouter, DomainRegistry, DnsManager │ │ └── security/ # DKIMCreator, DKIMVerifier, SpfVerifier, DmarcVerifier │ └── security/ # ContentScanner, IPReputationChecker, RustSecurityBridge diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 9b186a6..f922ca0 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/smartmta', - version: '2.3.2', + version: '2.4.0', description: 'A high-performance, enterprise-grade Mail Transfer Agent (MTA) built from scratch in TypeScript with Rust acceleration.' }