frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Rebuilding Amazon SES in Rust

https://github.com/nitrosend/nitromta
1•auscaster•11m ago
I'm Kam, co-founder and CTO of Nitrosend.

Email is our lifeblood, so we've been gradually moving our email sending onto bare-metal servers and IPs we control.

We wanted to make that move without rewriting the application code already calling Amazon SES. So we built NitroMTA, an open-source SES replacement in Rust. We kept our existing SES v2 sending calls and changed the endpoint and credentials to send through our own engine.

We've been running it in production for a few weeks, moving more mail over as we warm our IPs and build reputation with each mailbox provider.

Keep the SES integration

For an application using boto3, this is the client configuration:

  import boto3
  
  ses = boto3.client(
      "sesv2",
      region_name="us-east-1",
      endpoint_url="https://mail.example.com",
  )
For the SES v2 sending operations we support, the existing calls keep working. We test the official JavaScript, Python and Ruby SDKs against the engine, along with Nodemailer and django-ses. The compatibility page lists the operations and differences from SES: https://nitromta.com/docs/compatibility/

Measuring against KumoMTA and Postfix

In our published 2 November comparison, NitroMTA sustained 3.16 times KumoMTA's throughput and 4.11 times Postfix's. These numbers measure SMTP submission and delivery.

  Engine                Messages per second
  NitroMTA              3,313
  KumoMTA               1,048
  Postfix with OpenDKIM  806
Each engine had four CPU cores and 2 GiB of memory on the same AWS c7gd.metal bare-metal server, with its queue on local NVMe. The workload used 16 KiB messages, authenticated SMTP submission, TLS on submission and delivery, and RSA-2048 DKIM signing. Every engine committed a message to disk before acknowledging it.

The figures are medians of three interleaved runs per engine. The quick profile searches for the highest rate meeting its latency budgets using ten-second load steps, delivering to one receiver site with no added network delay. Across the nine runs, the harness sent 1.35 million messages and checked that each arrived once, with its body intact and its DKIM signature valid.

KumoMTA used its RocksDB spool with set_force_sync(true) to meet the same acceptance contract. KumoMTA documents that this forces database-wide flushes and can substantially reduce performance. The comparison is for that synchronous-acceptance contract; the harness also supports measuring its default asynchronous mode separately.

The method, configurations, exact versions and raw results are published, and you can run the comparison with cargo harness quick: https://nitromta.com/docs/benchmarks/

Give each IP a budget for each provider

An IP needs a sending history with the receivers it sends to. We need to decide how much volume it gets today, what earns it more tomorrow, and what makes us back off.

We track the budget by sending IP and receiver group. That lets us hold an IP's Gmail cap while increasing its cap elsewhere, or lower its Outlook.com cap when Microsoft's responses call for it.

With warmup enabled, the shipped ladder starts at 50 messages a day. A day needs enough SMTP outcomes to test its cap before it earns an increase. Complaints, failures, deferrals and throttling can hold the cap or move it down a rung.

The Outlook.com defaults take fourteen clean daily increases to reach 10,000 messages a day. The default ladder takes seven. Both are configurable.

Before any of this, the host needs outbound port 25 and reverse DNS control for its sending addresses. The domains need SPF, DKIM and DMARC, and bounce and complaint reports need somewhere to arrive. We put the setup checks in nitromta doctor, which prints the missing records.

Provider feedback and durability details continue in a reply.

Former id Software developers establish worker-owned, independent studio Hidden

https://www.verticalslice.news/former-id-software-developers-establish-worker-owned-independent-s...
1•riffraff•1m ago•0 comments

Show HN: Daily Atlas, my geography quiz game where rarer answers score more

https://dailyatlas.io/
1•ClozeLine•2m ago•0 comments

Show HN: Collection of Beauty–a walkable 3D museum of public-domain art

https://collectionofbeauty.com/gallery-3d
1•trebeljahr•2m ago•0 comments

Show HN: Spared – self-hosted Workers and Durable Objects for Rust apps

https://github.com/michaelmagan/spared
2•grouchy•2m ago•0 comments

Airlock, a checker for AI models going into air-gapped networks

1•sammatrixx•2m ago•0 comments

The Perverse Reasons Healthcare Costs Are About to Surge

https://www.theatlantic.com/economy/2026/11/affordability-crisis-health-care-insurance/689365/
1•rafaelc•2m ago•0 comments

MakerWorld removed my free card holder over "UNO". Now Mattel's agency wants 4k

https://www.reddit.com/r/BambuLab/comments/1xtkmyv/makerworld_removed_my_free_card_holder_over_uno/
1•BorisMelnik•3m ago•1 comments

Why mental health providers need to deconstruct their own patriarchal thinking

https://yourpsychologistisafeminist.substack.com/p/why-mental-health-providers-need
1•ElysiumAbove•3m ago•0 comments

The Death and Afterlife of the Segway

https://www.sfgate.com/local/article/segway-rise-fall-san-francisco-22506724.php
1•teachrdan•4m ago•1 comments

Thorium Nuclear Reactor Explanation [video]

https://www.youtube.com/watch?v=f-0Vs3D2a9g
1•silver92bullet•5m ago•0 comments

Meta's Head of Infrastructure, Engineering to Depart in 2027

https://www.bloomberg.com/news/articles/2026-11-11/meta-s-head-of-infrastructure-engineering-to-s...
2•akashshah87•7m ago•0 comments

VW drops 'Gamechanger' production at main plant, risking escalation with workers

https://www.reuters.com/business/world-at-work/vw-drops-gamechanger-production-main-plant-risking...
4•frank_clover•9m ago•0 comments

A Psilocybin Journey

https://blog.shunya.net/2026/11/a-psilocybin-journey.html
1•herbertl•10m ago•0 comments

Laser-armed AI submarine robots patrol Norwegian salmon farms, killing sea lice

https://www.tomshardware.com/tech-industry/drones/3-500-ai-laser-robots-patrol-norwegian-salmon-f...
5•bko•11m ago•0 comments

Show HN: Rebuilding Amazon SES in Rust

https://github.com/nitrosend/nitromta
1•auscaster•11m ago•0 comments

Correctness Firewalls for Synthesized Database Components

https://arxiv.org/abs/2611.05173
2•yrayhan•11m ago•0 comments

Show HN: A Visual Algorithm Playground

https://0xb00.com/algorithms
1•0xb00•12m ago•0 comments

The Challenge of Probabilistic Programming

https://statmodeling.stat.columbia.edu/2026/11/11/the-challenge-of-truly-probabilistic-programming/
1•magoghm•14m ago•0 comments

Prompt Injection, Esq.: pwning AI agent guardrails with lawyerspeak

https://www.mrnice.dev/posts/heavyweight-guardrails/
1•mooreds•14m ago•0 comments

A Claude Code plugin that makes narrated explainer videos on your own GPU

https://github.com/lewislf/claude-code-video-studio
1•lewiszzz•15m ago•0 comments

Google Pixel Tag

https://store.google.com/us/product/pixel_tag?hl=en-US
2•throw7•18m ago•0 comments

Exploring color matching in JavaScript [2013 post brought back from the dead]

https://liza.io/exploring-color-matching-in-javascript-2013-post-brought-back-from-the-dead/
2•speckx•20m ago•0 comments

Show HN: Memgit, versioned memory for Claude Code across all your machines

https://github.com/code4161/memgit
1•Hari-Sankar•20m ago•0 comments

Show HN: mib – A 300KiB Vim-Style Markdown Scratchpad for Linux / Wayland

https://github.com/osigurdson/mib
2•osigurdson•21m ago•0 comments

Gemini Decisions API

https://blog.google/innovation-and-ai/technology/developers-tools/gemini-decisions-api/
6•iamdelirium•22m ago•2 comments

Drones don't just kill: They also pick up radio transmissions, ID future targets

https://www.economist.com/science-and-technology/2026/11/04/drones-dont-just-blow-up-the-enemy
1•bookofjoe•23m ago•1 comments

Opportunistic Micro-Training on Edge Devices Using Spare GPU Utilization

https://image-ppubs.uspto.gov/dirsearch-public/print/downloadPdf/20260349820
2•theanonymousone•23m ago•0 comments

Show HN: Isometric Burlington – my town redrawn by an image model

https://isoburlington.com
1•spoofhopper•24m ago•0 comments

37% on ARC-AGI 2 without an LLM

https://mvakde.github.io/blog/looped-mdlarc/#vs-trm
1•E-Reverance•25m ago•0 comments

End of an era: Apple Support Community forums to permanently close

https://9to5mac.com/2026/11/10/end-of-an-era-apple-support-community-forums-will-permanently-clos...
2•sizzle•25m ago•0 comments