The section your link pointed to isn't on Rspamd's page any more, so we've brought you to the top.
Rspamd is an advanced spam filtering system and email processing framework that evaluates messages using rules, statistical analysis, and custom services.
Rspamd is an open-source spam filtering system and email processing framework that scores messages using rules such as regular expressions, statistical (Bayes) analysis, and external services like URL blacklists, then hands a verdict back to the mail transfer agent to reject, tag, or modify the message. It runs as a self-hosted service, typically acting as a Milter alongside Postfix or Sendmail, and is aimed at mail administrators and email infrastructure teams rather than end users, offering a Lua API for custom rules and processing hundreds of messages per second. It sits in the mail-filtering space alongside other MTA-integrated antispam systems, providing built-in modules out of the box while leaving room for bespoke plugins. Active since 2008 with 299 contributors, nearly 1,300 commits in the past year, and a release only 23 days ago, it is under continuous, current development.
Rspamd is an advanced spam filtering system and email processing framework that evaluates messages using rules, statistical analysis, and custom services.
Is this incoming message actually spam, and what should happen to it?
scores the message against regex, statistical (Bayes), and external-service rules and hands back a verdict the mail server can act on — reject, tag, or modify — along with any suggested modifications like a spam header
Which sender domains are lying about who they are?
checks DKIM signatures and DMARC alignment against the message, reporting authentication failures the mail server can act on
Why did a particular message get flagged or let through?
breaks the verdict down into the individual rules and their weights that fired on that message, so the score can be traced back to a cause
Is a linked-to destination actually where it claims to lead?
resolves redirect chains before scoring, following intermediate hops rather than judging the outward-facing link alone
Are these two spam runs actually the same campaign reworded?
compares fuzzy hashes and, for HTML mail, reuse of the same template even when the embedded links differ, flagging matches under a phishing-template symbol
Is a scan hanging because of a slow rule or a slow worker?
reports which async events and symbols are still pending when a scan exceeds its time budget, pointing at the stalled component instead of just the timeout
70 capabilities
across 7 areas
· 1 backed by code, an API document or a real run
Built from Rspamd's releases, docs, README and our own runs.
“Seen” marks the month we first spotted a release the vendor didn't date.
Group names and tags are our labels.
+Spam and Content Detection5 capabilitiesRspamd's core purpose is to classify messages as spam or legitimate mail using a layered set of detection techniques. These range from statistical and neural-network scoring to pattern matching, obfuscation detection, and fuzzy-hash deduplication.▸
+Composite rules engineshippedCombines individual rule scores into composite verdicts using logical expressions, letting operators encode complex spam policies as structured rules.9 releases · 2 other sources · first seen May 2019▸
release
9 total
Adds per-symbol Lua conditions and explicit dependencies in Composites rules.
4.1.2 · Jul 2026
· source
· release history
Composites support per-symbol Lua conditions and explicit dependencies
4.1.2 · Jul 2026
· source
· release history
Adds hot-reloadable dynamic composites map so composite rules update without a full restart.
4.1.0 · Jun 2026
· source
· release history
Adds per-service <RULE>_CHECK anchor symbol for dependency ordering and eXpurgate engine support in lua_scanners.
4.1.0 · Jun 2026
· source
· release history
Adds fuzzy_digest, fuzzy_shingles, authenticated, and received_count selectors.
4.1.0 · Jun 2026
· source
· release history
Adds a bloom filter for fast negative symbol lookups in Composites
3.14.1 · Dec 2025
· source
· release history
docs
This module is intended to enable the adoption and reading of SpamAssassin rules within Rspamd. Overview â SpamAssassin offers a comprehensive set of rules that prove useful in low-volume environments. The purpose of this plugin is to integrate these rules seamlessly into Rspamd.
seen Oct 2026
· source
example
Preserve per-check RBL symbol scoring after upgrading, when your composite rules depend on seeing one insertion per matched RBL entry.$ rbl { # ... existing RBL config ... merge_checks = false; }
4.2.3 · Oct 2026
· source
+Neural network spam scoringshippedScores messages using trained neural network models to catch spam that rule-based checks miss.8 releases · 2 other sources · first seen Jul 2018▸
Also counts toward: Plugin API support, Plugin system
release
8 total
Adds Neural train.frozen control to halt automatic training and a forced-learn minimal-scan fast path.
4.1.2 · Jul 2026
· source
· release history
Adds static_embed Neural provider with a WordPiece subword tokenizer over a static embedding matrix and per-token vector access.
4.1.2 · Jul 2026
· source
· release history
Adds pluggable feature-provider and ANN-architecture registries to the Neural module, plus a sequence output mode with SIF word selection for fasttext_embed, multi-head attention pooling in kann, and slice/concat graph transforms in lua_kann.
4.1.1 · Jun 2026
· source
· release history
Neural module supports external pretrained models with multi-layer funnel architecture, multi-model fasttext embedding with SIF word weighting, and expression-based autolearn for LLM providers.
4.0.0 · Mar 2026
· source
· release history
Overhauls the neural module into a pluggable provider-based architecture combining symbol features, LLM embeddings (OpenAI, etc.), trained normalization (unit/zscore/none), and Redis-backed embedding caching.
3.13.0 · Sep 2025
· source
· release history
ROC based threshold estimation for neural network plugin
3.2 · Apr 2022
· source
· release history
example
Prevent automatic Neural network updates while still allowing manual forced-learn during a model evaluation period.$ neural { train { frozen = true; } }
4.1.2 · Jul 2026
· source
Run a quick validation of the neural network model without full classification.$ rspamc neural test <model_path>
3.1 · Nov 2021
· source
+Multipattern content matchingshippedScans message content simultaneously against many text patterns to flag known bad content efficiently.7 releases · 1 other source · first seen Jul 2017▸
release
7 total
Maps: glob map patterns are now anchored to match the whole subject; entries relying on substring matching must be updated to use explicit wildcards or they will stop matching.
4.1.2 · Jul 2026
· source
· release history
Adds an explicit SOM (start-of-match) flag to the Multipattern engine.
4.1.1 · Jun 2026
· source
· release history
Multimap now uses only distinct text parts for content matching.
3.11.0 · Dec 2024
· source
· release history
Adds glob map support as an alternative to regexp maps for pattern matching
1.7.4 · May 2018
· source
· release history
Adds symbol option checking capability in Multimap, allowing validation of associated symbols during mapping.
1.6.3 · Jul 2017
· source
· release history
docs
Rspamd has several ways to add your own checks: multimap rules, composites, regexp rules, selectors, Lua rules and plugins. Use the simplest one that solves the problem. The diagram shows the order in which to consider them, and the rest of this page follows that order.
seen Oct 2026
· source
+Text statistical analysisshippedMeasures statistical properties of message text, such as entropy and byte distribution, to surface unusual or obfuscated content.3 releases · first seen Jul 2017▸
Also counts toward: Scripting language support
release
Adds opt-in zip-bomb extraction limits (size, count, ratio) to lua_archive and byte-distribution statistics (entropy, byte mean/deviation, serial correlation, Monte-Carlo Pi) to lua_text.
4.1.1 · Jun 2026
· source
· release history
New byte-distribution statistics methods in lua_text: entropy, byte mean/deviation, serial correlation, and Monte-Carlo Pi.
4.1.1 · Jun 2026
· source
· release history
Adds text_part:get_stats Lua function for script access to text part statistics
1.6.2 · Jul 2017
· source
· release history
+CSS and text obfuscation detectionshippedIdentifies attempts to hide spam text from readers using CSS tricks such as tiny fonts, off-screen positioning, and clipping.1 release · first seen Jun 2026▸
release
Expands CSS text-hiding detection to cover off-screen positioning, clip, negative text-indent, and tiny fonts.
4.1.1 · Jun 2026
· source
· release history
+Email Authentication and Policy Enforcement4 capabilitiesRspamd verifies and enforces the standard email authentication stack — DKIM, DMARC, and SPF — and processes abuse reports. These capabilities allow it to reject forgeries, align policies correctly across address rewrites, and ingest complaint feedback.▸
+Spam filter settings and policy controlshippedControls which rules and scoring symbols apply to a given message or sender, supporting allow-listing, explicit-enable gating, and additive policy overrides.24 releases · 5 other sources · first seen Jul 2017▸
release
24 total
Adds priority setting to force_actions rules that depend on composites, promoting them to postfilters and exposing the rank as a priority:N symbol option.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
4.2.3 · Oct 2026
· source
· release history
Adds implicit_allow policy option in Settings apply with additive symbols_enabled, plus strict explicit_enable gating.
4.1.2 · Jul 2026
· source
· release history
Settings gains new apply policy option implicit_allow with additive symbols_enabled, plus strict explicit_enable gating
4.1.2 · Jul 2026
· source
· release history
Adds layered collect-then-merge flow for settings, with weak dependencies, disabled status in symcache, and force-enable override for settings conflicts.
4.0.1 · Apr 2026
· source
· release history
Reply-To validity checks added to headers_checks.
4.0.0 · Mar 2026
· source
· release history
Adds combinator option for selector rules in Multimap
3.14.1 · Dec 2025
· source
· release history
docs
libev More than 50 built-in modules can be enabled/disabled/configured independently: external_relay = [192.168.1.0/24]; # Check the IP that passed mail to these relays whitelist = [192.0.2.10]; # Skip SPF checks for these sender IPs # /etc/rspamd/local.d/actions.conf # Include another file; $LOCAL_CONFDIR is a…
seen Oct 2026
· source
override defaults, see the FAQ on the difference between local.d and override.d external_services - integrates external scanners such as oletools, DCC, Pyzor, Razor or ICAP servers (requires configuration) hfilter - checks HELO, hostname, sender, recipients, Message-ID and URLs for common bad patterns - pushes…
seen Oct 2026
· source
Why scan outbound mail â Sending outbound spam can have severe negative consequences on your system's email delivery capabilities. It is crucial to prevent the occurrence of spam and its associated issues.
seen Oct 2026
· source
example
Filter messages using an SA-style selector rule in multimap to match sender domain with a regex.$ selector FROM_CORP from:domain =~ /corp\.example$/i
3.13.0 · Sep 2025
· source
Configure a map of whitelisted ARC signers.$ arc { whitelisted_signers_map = "${DBDIR}/map/arc_whitelist"; }
2.5 · Apr 2020
· source
+DKIM signing and verificationshippedVerifies DKIM signatures on inbound mail and signs outbound messages to authenticate the sending domain.10 releases · 2 other sources · first seen Apr 2018▸
release
10 total
DKIM: HAVE_ED25519 is now scoped to OpenSSL key parsing only, changing ed25519 verification behavior on OpenSSL builds.
4.1.3 · Jul 2026
· source
· release history
Adds OpenDKIM-like signing_table and key_table options to dkim_signing module, usable as maps
1.9.2 · Apr 2019
· source
· release history
Adds support for ed25519 DKIM key generation
1.9.0 · Mar 2019
· source
· release history
Adds rspamadm mime sign command for signing MIME messages
1.9.0 · Mar 2019
· source
· release history
Add method to get DKIM results via Lua API
1.8.3 · Dec 2018
· source
· release history
Adds check_violation feature to DKIM/ARC signing configuration
1.8.1 · Oct 2018
· source
· release history
docs
# Test DKIM signing. The From: header domain must match the authenticated user. rspamc -u test@example.com <<'EOF' | grep DKIM_SIGNED From: test@example.com To: rcpt@example.net Subject: DKIM test Test message Environment="RSPAMD_VAULT_DKIM_TOKEN=…" # Test signing with a sample message…
seen Oct 2026
· source
example
Configure DKIM/ARC signing to check for violation results$ dkim_signing { check_violation = true; }
1.8.1 · Oct 2018
· source
+DMARC and SPF evaluationshippedEvaluates SPF and DMARC policies for each message, maintaining correct sender alignment even when addresses have been rewritten.7 releases · 1 other source · first seen Jul 2017▸
Also counts toward: Scripting language support
release
7 total
In lua_task, the orig address flavour now returns only the wire (transmitted) addresses when a rewrite preserved the originals — code expecting rewritten addresses under orig will receive different values.
4.1.2 · Jul 2026
· source
· release history
Detects and scores SPF +all (pass-all) records specially, flagging domains that publish permissive SPF policies that allow any sender.
3.9.1 · Jul 2024
· source
· release history
Allow disabling AAAA checks in SPF configuration via a dedicated setting.
2.1 · Oct 2019
· source
· release history
Supports SPF macros transformations during evaluation
1.6.2 · Jul 2017
· source
· release history
docs
4.1.2 July 21, 2026 Patch Release with a Critical MIME Recursion DoS Fix, Sender-Identity Preservation for DMARC/SPF, Composite Lua Conditions, and the WebUI Tabulator Migration
docs update · Jul 2026
· source
+Abuse feedback loop (ARF) processingshippedParses ARF abuse complaint reports and fills in missing detail by recovering headers from the original reported message.3 releases · first seen Jun 2026▸
Also counts toward: Scripting API
release
Enables sparse ARF report enrichment in lua_feedback_parsers using original message headers.
4.1.3 · Jul 2026
· source
· release history
Enriches sparse ARF reports in lua_feedback_parsers with headers from the original message.
4.1.3 · Jul 2026
· source
· release history
Extends Lua API with bulk and regexp symbol lookups on task; phase-specific (connect/read/write) timeouts and an on_error callback for lua_tcp; lua_extras structured loader for custom selectors, maps, and regexps with cross-kind dependency ordering; and lua_feedback_parsers for DSN and ARF reports.
4.1.0 · Jun 2026
· source
· release history
+Message Parsing and Safe Handling4 capabilitiesBefore any analysis can run, Rspamd must safely parse and decompose incoming messages. These capabilities handle MIME structures, archives, URLs, and cryptographic primitives while defending against parser-level attacks.▸
+MIME and archive parsingshippedParses MIME structures and archive formats, with configurable limits to prevent zip-bomb and MIME-recursion denial-of-service attacks.8 releases · 1 other source · first seen Sep 2017▸
release
8 total
Adds opt-in zip-bomb extraction limits (size, count, ratio) to lua_archive to bound archive expansion.
4.1.1 · Jun 2026
· source
· release history
rspamadm dmarc_report subcommand for sending DMARC reports
3.0 · Oct 2021
· source
· release history
Adds task:lookup_words Lua method and flexible URL extraction methods
1.9.0 · Mar 2019
· source
· release history
Allow to print full mime structure when extracting mime data
1.7.9 · Aug 2018
· source
· release history
Adds fuzzy-hash extraction in the MIME tool.
1.7.8 · Jul 2018
· source
· release history
Provide $HOSTNAME variable in UCL and support encrypted configs in UCL.
1.7.6 · Jun 2018
· source
· release history
docs
Tue, 21 Jul 2026 17:53:35 GMT Rspamd 4.1.2 - Patch Release with a Critical MIME Recursion DoS Fix, Sender-Identity Preservation for DMARC/SPF, Composite Lua Conditions, and the WebUI Tabulator Migration https://docs.rspamd.com/changelog/4.1.2https://docs.rspamd.com/changelog/4.1.2 Tue, 21 Jul 2026 00:00:00 GMT…
docs update · Jul 2026
· source
+URL redirection and SSRF protectionshippedFollows URL redirects to find final destinations and blocks requests that would reach internal or local network addresses.4 releases · 2 other sources · first seen Sep 2018▸
release
Adds forbid_local option to lua_http configuration to block requests to local networks.
4.1.3 · Jul 2026
· source
· release history
Adds forbid_local option to lua_http to block requests to local networks (enabled by default in url_redirector).
4.1.3 · Jul 2026
· source
· release history
Upgrades url_redirector with chain-aware intermediate-hop caching, coherent browser fingerprint profiles for stealth resolution, glob-based redirector_hosts_map, and a per-URL GET allowlist.
4.1.0 · Jun 2026
· source
· release history
Adds selectors support in the ratelimit module to apply limits based on dynamic criteria like message metadata
1.8.0 · Sep 2018
· source
· release history
example
Block lua_http from making outbound requests to internal/local network addresses in a custom redirector or plugin.$ # In rspamd lua_http call options: local ret, code, body = rspamd_http.request({ url = url, task = task, forbid_local = true, })
4.1.3 · Jul 2026
· source
Configure lua_http to prevent outbound requests to internal networks.$ forbid_local = true;
4.1.3 · Jul 2026
· source
+Cryptographic utilitiesshippedExposes hashing, CRC32, and other cryptographic primitives to Lua rules for use in custom detection logic.5 releases · first seen Jul 2017▸
Also counts toward: Scripting API
release
Exposes a zlib/YARA-compatible crc32 on rspamd_text, rspamd_util, and cryptobox hash objects.
4.1.1 · Jun 2026
· source
· release history
Exposes a zlib/YARA-compatible CRC32 on rspamd_text, rspamd_util, and cryptobox hash objects.
4.1.1 · Jun 2026
· source
· release history
Adds support for multiple base32 alphabets in maps and decoding
2.6 · Sep 2020
· source
· release history
Adds DKIM keypair generation and fast hashes to the Lua cryptobox API.
1.9.3 · May 2019
· source
· release history
Implements rdns-curve plugin using rspamd cryptobox library
1.6.2 · Jul 2017
· source
· release history
+HTTP content negotiationshippedNegotiates response format and compression with API clients so scan results are returned in the representation the caller requests.3 releases · first seen Mar 2026▸
release
Enables content-negotiation in checkv3 — representation and compression now negotiated via Accept/Accept-Encoding headers.
4.1.1 · Jun 2026
· source
· release history
Enables content-negotiation (representation and compression) in checkv3 via Accept/Accept-Encoding headers.
4.1.1 · Jun 2026
· source
· release history
HTTP content negotiation framework with zstd compression for the /stat endpoint.
4.0.0 · Mar 2026
· source
· release history
+Administration, Configuration, and Tooling4 capabilitiesRspamd provides multiple surfaces for operators to configure, inspect, and manage the system without editing raw files. These include a web UI, a CLI, an HTTP controller API, and configuration introspection commands.▸
+WebUIshippedProvides a browser-based interface for monitoring scan results, adjusting settings, and searching operational history.32 releases · 5 other sources · first seen Apr 2018▸
Also counts toward: Web management console
release
32 total
Adds fuzzy storage health monitoring via fuzzy_check.ping_storage_all and the /plugins/fuzzy/status API endpoint, with per-server liveness marks, down badges, and an on-demand Check button in the WebUI.
4.2.0 · Sep 2026
· source
· release history
Adds three-state health, per-server details row, load/latency, config drift, Writable badge, and cluster information to the WebUI Status servers table.
4.2.0 · Sep 2026
· source
· release history
WebUI Status servers table gains three-state health, per-server details rows, load and latency columns, version and config drift indicators, a Writable badge, and an All SERVERS cluster row.
4.2.0 · Sep 2026
· source
· release history
WebUI Bayes panel gains a learns balance bar and a min_learns status badge.
4.2.0 · Sep 2026
· source
· release history
WebUI: read-only users can now access the Selectors tab and the Errors history
4.1.4 · Jul 2026
· source
· release history
Read-only WebUI users can now access the Selectors tab and the Errors history.
4.1.4 · Jul 2026
· source
· release history
docs
4.1.3 July 25, 2026 Hardening Release with DKIM/SPF Correctness Fixes, Parser Resource Bounds, Fuzzy Hash Observability, and a jQuery-Free WebUI
seen Jul 2026
· source
example
Allow read-only users to inspect rules and errors via the WebUI$ Navigate to the Selectors tab or Errors history in the Rspamd WebUI as a user with read-only permissions.
4.1.4 · Jul 2026
· source
Enable dark mode in the Rspamd WebUI — useful for SOC analysts working in low-light environments; auto-detection follows the OS preference.$ In the WebUI, open Settings and enable Dark Mode (auto-detection follows the OS theme preference).
3.14.0 · Nov 2025
· source
Upload an .eml file directly in the WebUI to test selectors against a real message without copy-pasting.$ In the Rspamd WebUI, go to Test selectors, then click the file upload control to select a local .eml file and evaluate selectors against it.
3.12.0 · Jun 2025
· source
Use the new WebUI feature to upload an email file for manual analysis directly from the interface.$ 1. Open the Rspamd WebUI. 2. Navigate to the 'Scan' tab. 3. Drag and drop an EML/MIME file into the drop area or click to select a file.
3.9.0 · Jul 2024
· source
+Rspamadm command-line administrationshippedOffers a command-line tool for administrative operations, with support for loading organisation-specific command extensions.13 releases · 2 other sources · first seen Jul 2017▸
Also counts toward: Command-line interface, Plugin system
release
13 total
Adds /fuzzystat endpoint and rspamadm fuzzystat CLI command to retrieve sampled fuzzy storage statistics (count_scan.stats_sample).
4.2.0 · Sep 2026
· source
· release history
Adds rspamadm fuzzy_hash subcommand to generate and manage fuzzy hashes from the CLI.
4.1.3 · Jul 2026
· source
· release history
Enables discovery of Rspamadm command modules from external directories via rspamadm.d or RSPAMADM_COMMAND_PATH.
4.1.2 · Jul 2026
· source
· release history
rspamadm command modules can be discovered from external directories (rspamadm.d, RSPAMADM_COMMAND_PATH)
4.1.2 · Jul 2026
· source
· release history
Adds rspamadm control memstat for per-worker memory dumps covering RSS, mempool callsites, Lua heap, and jemalloc stats; also adds dmarc_report --batch-wait and autolearnstats --sort-by/--group options.
4.1.0 · Jun 2026
· source
· release history
New rspamadm subcommands: autolearnstats, logstats, and mapstats.
4.0.0 · Mar 2026
· source
· release history
example
Load Rspamadm command modules from a custom directory to deploy organisation-specific admin tooling without modifying core config.$ RSPAMADM_COMMAND_PATH=/opt/rspamd/custom-commands rspamadm <command>
4.1.2 · Jul 2026
· source
Discover and run rspamadm modules installed in a non-standard directory.$ export RSPAMADM_COMMAND_PATH=/opt/custom/rspamadm_modules && rspamadm --list
4.1.2 · Jul 2026
· source
+Controller and automation APIshippedExposes an HTTP API for automation tasks such as scripted scanning and password-protected administrative actions.9 releases · 4 other sources · first seen Feb 2018▸
Also counts toward: REST API
release
9 total
The rspamadm controller password can now be read from the environment for automation
4.1.2 · Jul 2026
· source
· release history
Allows the Rspamd controller password to be read from the environment for automation use cases.
4.1.2 · Jul 2026
· source
· release history
Kubernetes health and readiness endpoints (/healthz, /readyz) in the controller
3.0 · Oct 2021
· source
· release history
OpenMetrics-compatible metrics endpoint at /openmetrics in the controller
3.0 · Oct 2021
· source
· release history
Stores SPF record digests for performance optimization
1.9.2 · Apr 2019
· source
· release history
Alternatively, rely on the enable_shutdown_workaround global option , which is enabled by default. ${sg{$acl_m_report}{(?m)^(?!X-Milter-Add: ).*(\\n|\$)}{}}}\ ${sg{$acl_m_report}{(?m)^(?!X-Milter-Del: ).*(\\n|\$)}{}}}\ , which scans a message using Rspamd and appends the scan results to the source message.
seen Oct 2026
· source
This document provides a comprehensive guide for developing controller WebUI endpoints in Rspamd, covering both the existing C-based endpoints and how to create new Lua-based endpoints. Overview â The Rspamd controller is an HTTP daemon that provides a REST API interface for managing and monitoring Rspamd.
seen Oct 2026
· source
Read the controller password from an environment variable for automation.$ export RSPAMADM_CONTROLLER_PASSWORD=$(cat /run/keys/controller) && rspamadm configdump
4.1.2 · Jul 2026
· source
+Configuration introspectionshippedDumps and inspects the active configuration, including internal symbol cache flags, so operators can verify what is actually in effect.4 releases · 2 other sources · first seen Oct 2019▸
Also counts toward: Command-line interface
release
--symbol-details flag on configdump now shows symcache flags
4.1.2 · Jul 2026
· source
· release history
Adds symcache flag display to configdump --symbol-details.
4.1.2 · Jul 2026
· source
· release history
New --non-default option for rspamadm configdump to show only locally overridden configuration.
3.12.0 · Jun 2025
· source
· release history
Adds lua_maps with static maps and key-value pair support for configuration-driven lookups
2.0 · Oct 2019
· source
· release history
example
Show only non-default (locally overridden) configuration values to audit your local changes against shipped defaults.$ rspamadm configdump --non-default
3.12.0 · Jun 2025
· source
Inspect the new enhanced structure in configdump output to verify your custom settings.$ rspamadm configdump
3.2 · Apr 2022
· source
+Analytics and Reporting2 capabilitiesRspamd can export scan results and embeddings to external systems for historical analysis and similarity search. These capabilities let operators build dashboards, audit decisions over time, and run approximate-nearest-neighbour lookups against message vectors.▸
+Embedded vector similarity search serviceverifiedRuns a local vector embedding and approximate-nearest-neighbour search service for similarity-based message classification.2 releases · 7 other sources · first seen Oct 2017▸
Also counts toward: Command-line interface, Self-hosted deployment
release
Adds Clickhouse: Store groups data to store composite rule group outcomes in ClickHouse metrics backend
2.0 · Oct 2019
· source
· release history
Adds Expires header support when using HTTP maps for dynamic configuration updates
1.6.5 · Oct 2017
· source
· release history
docs
Bundled LuaJIT 2.1 Built from the upstream LuaJIT v2.1 branch instead of the distribution package Optimized memory allocation (x86_64 packages, except EL 10) What does the "maximum symbols cache timeout" warning mean?
seen Oct 2026
· source
command line
--search-only — Only search for instances, don't launch
4.0.0 · Mar 2026
· command-line history
--show-url — Show service URL for a running instance
4.0.0 · Mar 2026
· command-line history
--max-price — Maximum $/hr (default: 0.30)
4.0.0 · Mar 2026
· command-line history
+ClickHouse analytics exportshippedExports scan results and fuzzy match details to ClickHouse so operators can query and analyse filtering decisions historically.7 releases · first seen Apr 2019▸
release
7 total
Exports fuzzy match details to ClickHouse (schema version 11) and annotates the X-Rspamd-Fuzzy milter header with rule, flag, probability, and timestamp.
4.1.3 · Jul 2026
· source
· release history
Adds ClickHouse named extra_columns presets (including an outbound preset) and richer Elastic logs covering Reply-To, received IPs, URL metadata, and forcing module.
4.1.0 · Jun 2026
· source
· release history
Native UUID v7 generation per task with ClickHouse UUID v7 column support for cross-system correlation.
4.0.0 · Mar 2026
· source
· release history
metadata_exporter HTTP pusher now supports basic authentication for remote metric pushing
3.4 · Nov 2022
· source
· release history
Adds scan_time and hostname fields to the metadata_exporter output.
3.3 · Oct 2022
· source
· release history
Adds support for extra columns in ClickHouse.
2.4 · Feb 2020
· source
· release history
+Other1 capabilityCapabilities that did not group under any area above.▸
+Fuzzy hash storage and matchingshippedStores and queries fuzzy hashes to detect near-duplicate malicious content, with structured match results, probability scoring, and export to ClickHouse and milter headers.25 releases · 8 other sources · first seen Jul 2017▸
release
25 total
Fuzzy storage now shares sender facts (SPF, DKIM, DMARC, PTR state, recipient bucket, TLS) with storages over encrypted rules.
4.1.5 · Aug 2026
· source
· release history
Adds prob_bias and prob_power parameters to anchor the Fuzzy probability weight curve at the match threshold.
4.1.3 · Jul 2026
· source
· release history
Adds structured fuzzy match results via a diagnostics API and the new task:get_fuzzy_results() Lua method, with a configurable probability weight curve (prob_bias, prob_power) anchored at the match threshold.
4.1.3 · Jul 2026
· source
· release history
Adds new per-hash introspection endpoint rspamadm control fuzzyhash <hash> for debugging Fuzzy storage state.
4.1.3 · Jul 2026
· source
· release history
Adds Lua API task:get_fuzzy_results() and structured match results for Fuzzy checks, enabling access to diagnostic details in custom scripts.
4.1.3 · Jul 2026
· source
· release history
Annotates the X-Rspamd-Fuzzy header with milter_headers module, including rule, flag, probability and timestamp data.
4.1.3 · Jul 2026
· source
· release history
docs
4.1.5 August 14, 2026 Patch Release Gating File and Shared-Memory Message Sources, with Fuzzy Sender Facts and Font-Aware PDF Text Extraction
seen Aug 2026
· source
Migration to Rspamd 4.1.5 1. Upgrade Self-Hosted Fuzzy Storages Before Scanners Rspamd 4.1.5 scanners attach a new sender-facts extension to fuzzy commands on every rule that shares extensions, i.e. a rule with encryption configured and without no_share = true 856fa42 #6179 ).
docs update · Aug 2026
· source
Migration to Rspamd 4.1.3 Rspamd 4.1.3 tightens several resource limits that were previously unbounded, corrects a number of limits that were configured but never actually enforced, and changes how fuzzy matches are scored and reported. Most deployments are affected by at least one of the items below. 1.
seen Jul 2026
· source
example
Pull sampled fuzzy storage statistics — including per-source IP counts — to audit hash-count accuracy after migrating from the old counter-based approach.$ rspamadm fuzzystat
4.2.0 · Sep 2026
· source
Cap per-key source IP tracking in the fuzzy storage to limit memory use on high-traffic deployments.$ max_ips_per_key = 256; key { id = "<your-key-id>"; max_ips = 64; }
4.2.0 · Sep 2026
· source
Retrieve detailed Fuzzy match diagnostics within a Lua rule to inspect probability and flags.$ local results = task:get_fuzzy_results() for _, res in ipairs(results) do if res.prob > 0.5 then -- Process high-confidence match end end
4.1.3 · Jul 2026
· source
Inspect a specific fuzzy hash entry in storage to validate hits or debug false positives.$ rspamadm control fuzzyhash <hash>
4.1.3 · Jul 2026
· source
Retrieve structured fuzzy match results in a Lua rule to act on probability scores or matched rules.$ local results = task:get_fuzzy_results() for _, r in ipairs(results) do rspamd_logger.infox(task, 'fuzzy match: rule=%s prob=%s', r.rule, r.probability) end
4.1.3 · Jul 2026
· source
+Other50 capabilities▸
+MTA integrationshippedIntegrates Rspamd with mail transfer agents such as Postfix by running as a separate daemon that receives messages, scores them, and returns a recommended action.22 releases · 2 other sources · first seen Jun 2017▸
release
22 total
Adds EHLO and 8BITMIME negotiation with HELO fallback to lua_smtp, downgrading 8-bit messages to 7-bit when the server does not advertise 8BITMIME.
4.2.2 · Oct 2026
· source
· release history
Adds IP-class classification, bad_mxs/bad_ips trust maps, and per-source checks to mx_check.
4.1.0 · Jun 2026
· source
· release history
Adds Power of Two Choices load-aware upstream selection with per-upstream latency EWMA, slow-start on revive, per-target SRV weight/error-budget expansion, and deferred DNS to survive transient startup failures.
4.1.0 · Jun 2026
· source
· release history
Reports pending async events and stalled symbols when a scan times out, aiding diagnosis of slow scans.
4.1.0 · Jun 2026
· source
· release history
Suspicious TLDs are now map-based via conf/maps.d/suspicious_tlds.inc instead of a hardcoded list.
4.0.0 · Mar 2026
· source
· release history
Adds a Postfix wizard for automated Rspamd integration.
3.14.0 · Nov 2025
· source
· release history
docs
is a high-performance spam filtering system and email processing framework. It runs as a separate daemon next to your Mail Transfer Agent (MTA): the MTA passes each message to Rspamd, which analyzes it and returns a score and a recommended action.
seen Oct 2026
· source
This guide takes a new Rspamd installation to a working spam filter for Postfix: checking Redis and the web interface password, test scans, MTA integration and Bayes training.
seen Oct 2026
· source
+Flexible metadata export formattersshippedSupports multipart, msgpack, and json_with_message formatters for flexible binary and multipart upload of scan results.6 releases · 4 other sources · first seen Dec 2025▸
Also counts toward: JSON data export, REST API
release
Adds unix_time field to general metadata in metadata_exporter.
4.2.3 · Oct 2026
· source
· release history
Validates metadata_exporter rules against a schema so that configtest fails on an invalid rule.
4.2.2 · Oct 2026
· source
· release history
Adds email_parts to metadata_exporter to compose multipart email alerts with plain and HTML parts grouped into multipart/alternative, with automatic RFC 2047 encoding for non-ASCII headers.
4.2.2 · Oct 2026
· source
· release history
Adds mail_from, mail_to, helo, channel, and stream_key fields plus selector expansion and custom variables to metadata_exporter rules.
4.2.2 · Oct 2026
· source
· release history
New /checkv3 HTTP endpoint uses multipart/form-data requests and multipart/mixed responses with structured JSON/msgpack metadata, per-part zstd compression, zero-copy writev responses, and proxy support.
4.0.0 · Mar 2026
· source
· release history
Adds multipart, msgpack, and json_with_message formatters to the Metadata Exporter for flexible binary and multipart upload support.
3.14.2 · Dec 2025
· source
· release history
docs
Migration to Rspamd 4.2.2 1. metadata_exporter: Invalid Rules Are Now Disabled Rules are now checked against a schema when the configuration loads ( 63743c613 #6292 ). The built-in backends are http send_mail redis_pubsub redis_stream redis_list json_raw_tcp , and their schema is closed.
docs update · Oct 2026
· source
example
Include unix timestamps in exported message metadata for easier downstream log correlation.$ metadata_exporter { # ... existing exporter config ... general { unix_time = true; } }
4.2.3 · Oct 2026
· source
Compose a multipart alert email with both plain-text and HTML bodies using email_parts in metadata_exporter, with a custom stream_key variable for routing.$ rules { MY_ALERT { backend = "email"; mail_from = "rspamd@example.com"; mail_to = "security-team@example.com"; stream_key = "spam-alerts"; email_parts = ["text", "html"]; } }
4.2.2 · Oct 2026
· source
Use the new crypto_addresses() selector in a metadata_exporter rule to include detected wallet addresses in alert emails sent by your spam-analysis pipeline.$ selector = "crypto_addresses()"
4.2.2 · Oct 2026
· source
+Malicious document and archive inspectionshippedInspects email attachments for malicious content using external scanners, ICAP protocols, and specialized handling for encrypted archives or OLE files.9 releases · first seen Mar 2019▸
release
9 total
Extracts XLSX and PPTX relationship-level facts as new symbols: OOXML_MACROS, OOXML_OLE_OBJECT, OOXML_REMOTE_TEMPLATE, OOXML_EXTERNAL_DATA.
4.2.0 · Sep 2026
· source
· release history
PDF module gains font-aware text extraction: decodes simple font text via the font's /Encoding (Annex D base encodings and /Differences overrides) and parses /ToUnicode CMaps to decode composite (Type0) fonts.
4.1.5 · Aug 2026
· source
· release history
Adds font-aware PDF text extraction: decodes simple font text via the font's /Encoding (Annex D base encodings and /Differences overrides) and parses /ToUnicode CMaps to decode composite (Type0) fonts.
4.1.5 · Aug 2026
· source
· release history
ASCII85 decode support added for PDF extraction.
4.0.0 · Mar 2026
· source
· release history
Supports scanning encrypted ZIP archives (both ZipCrypto and AES encryption) via updated Lua bindings using libarchive.
3.13.1 · Sep 2025
· source
· release history
Rspamd now treats *.zpaq attachments as archives and harmful
3.7.4 · Nov 2023
· source
· release history
+Mail header and message modificationshippedModifies email content by rewriting headers, appending footers, or rendering configuration templates using external tools.8 releases · first seen Mar 2019▸
Also counts toward: Command-line interface
release
8 total
Adds util.fold_header_unstructured to the Lua API for folding unstructured headers per RFC 5322.
4.2.2 · Oct 2026
· source
· release history
Adds include/exclude logic for headers processing.
3.11.0 · Dec 2024
· source
· release history
Adds new message anonymization capabilities.
3.11.0 · Dec 2024
· source
· release history
[Feature] milter_headers: support not removing headers
3.9.0 · Jul 2024
· source
· release history
Adds rspamadm template subcommand to render configuration files using Jinja2 templates
1.9.1 · Apr 2019
· source
· release history
Enables preprocessing of Rspamd config files with Jinja syntax before parsing
1.9.1 · Apr 2019
· source
· release history
+Bayesian expiry managementshippedProvides automatic expiration of Bayesian learning data through a dedicated configuration module.6 releases · 2 other sources · first seen Mar 2018▸
Also counts toward: Command-line interface
release
Adds /bayes/classifiers HTTP endpoint to retrieve Bayesian classifier information via the Rspamd HTTP API.
3.12.1 · Jun 2025
· source
· release history
Add bayes_expiry.conf to provide ability to set custom settings for bayes filter expiry
3.9.0 · Jul 2024
· source
· release history
suspicious_url composite rule detects suspicious URLs in messages flagged with SUSPICIOUS_HEADERS
3.7.4 · Nov 2023
· source
· release history
Add junk_threshold to control autolearn acceptance
3.1 · Nov 2021
· source
· release history
rspamadm bayes_dump subcommand for saving and restoring Bayes tokens
3.0 · Oct 2021
· source
· release history
Add bayes_expiry module as a standalone config component for automatic expiry of bayesian learner data
1.7.0 · Mar 2018
· source
· release history
example
Query the Bayesian classifiers configured in Rspamd to inspect their current state — useful for monitoring or automation.$ curl -s http://localhost:11334/bayes/classifiers
3.12.1 · Jun 2025
· source
Configure custom expiry times for bayes filter entries using the new dedicated configuration file.$ # Create or edit /etc/rspamd/local.d/bayes_expiry.conf # Example: set a 30-day expiry expiry = 2592000;
3.9.0 · Jul 2024
· source
+Plugin and event extensibilityshippedAllows loading user-defined plugins from specific directories and listening to upstream events via Lua for custom behavior.6 releases · first seen Mar 2019▸
Also counts toward: Plugin API support, Plugin system, Scripting API, Scripting language support
release
task:has_pre_result() in the Lua API now returns the action name (instead of its type) plus its flags.
4.2.3 · Oct 2026
· source
· release history
Adds a task registry for safe Lua task reference validation.
3.14.3 · Jan 2026
· source
· release history
Adds lua_shape validation library as a replacement for tableshape
3.14.1 · Dec 2025
· source
· release history
Adds lua.local.d folder and other new ways to extend Rspamd configuration.
3.11.0 · Dec 2024
· source
· release history
Adds support for loading user plugins directly from the plugins.d directory
1.9.2 · Apr 2019
· source
· release history
Adds upstream watcher event listeners via Lua API
1.9.0 · Mar 2019
· source
· release history
+Email protocol and data parsing enhancementsshippedExtends parsing capabilities to include iCalendar files, flexible word extraction, and custom SMTP handling via Lua.6 releases · first seen Mar 2019▸
Also counts toward: Scripting API
release
Adds an smtp newline normalization mode to rspamd_text in the Lua API.
4.2.2 · Oct 2026
· source
· release history
Adds Milter ESMTP argument parsing with a new Lua API.
3.14.0 · Nov 2025
· source
· release history
Adds support for processing SMIME signed messages containers in addition to standard email bodies
2.7 · Jan 2021
· source
· release history
Adds Clickhouse: Store groups data to store composite rule group outcomes in ClickHouse metrics backend
2.0 · Oct 2019
· source
· release history
Enables parsing of .ical (iCalendar) files within the tool
1.9.2 · Apr 2019
· source
· release history
Adds task:lookup_words Lua method and flexible URL extraction methods
1.9.0 · Mar 2019
· source
· release history
+LLM-based email classificationshippedIntegrates large language models to analyze message content for spam or malicious intent, supporting local inference via Ollama and multi-model consensus.6 releases · first seen Mar 2025▸
Also counts toward: ML-based detection, Self-hosted deployment
release
GPT: The condition callback now returns only a boolean; request content generation has been moved into gpt_check.
4.1.5 · Aug 2026
· source
· release history
GPT module adds configurable consensus thresholds and a context_augment hook.
4.0.0 · Mar 2026
· source
· release history
Adds web search context for the LLM plugin with Redis caching.
3.14.0 · Nov 2025
· source
· release history
Introduces a Redis caching framework for use across modules, with the GPT module as the first consumer.
3.11.1 · Mar 2025
· source
· release history
Supports LLM model consensus, allowing multiple LLM models to vote on a message classification.
3.11.1 · Mar 2025
· source
· release history
Adds Ollama support to the GPT plugin, enabling local LLM-based spam analysis without external APIs.
3.11.1 · Mar 2025
· source
· release history
+External service integrationshippedInterfaces with third-party threat intelligence services like Pyzor for spam detection.6 releases · first seen Oct 2021▸
release
Discovers rspamd.com fuzzy servers via SRV by default in fuzzy_check.
4.1.0 · Jun 2026
· source
· release history
New Metadefender hash lookup module enables file-hash reputation checks against the Metadefender cloud.
3.13.2 · Oct 2025
· source
· release history
Adds SenderScore Reputationlist RBL and RPBL return codes to the default RBL configuration.
3.10.0 · Sep 2024
· source
· release history
Allow to add templates to redis history prefix
3.9.0 · Jul 2024
· source
· release history
Allows adding templates to the Redis history prefix via configuration
3.8.2 · Feb 2024
· source
· release history
external_services plugin support for Pyzor
3.0 · Oct 2021
· source
· release history
+DKIM/RBL configuration refinementsshippedAdjusts DKIM alignment weight distribution and migrates RBL URL composition maps to use public suffix lookups.3 releases · 2 other sources · first seen Sep 2026▸
release
RBL: the dkim_domainonly flag under dkim_match_from was inverted; eSLDs were compared when dkim_domainonly was off. The logic is now corrected, which may change which DKIM-domain RBL matches fire.
4.2.3 · Oct 2026
· source
· release history
R_DKIM_ALLOW weight changes from -0.2 to -0.1; alignment credit moves to the new R_DKIM_ALIGNED symbol.
4.2.0 · Sep 2026
· source
· release history
The 10.5k-pattern TLD hyperscan database is removed; multimap RBL URL composition maps now use the new public suffix lookup.
4.2.0 · Sep 2026
· source
· release history
docs
Migration to Rspamd 4.2.3 1. RBL: Checks Resolving to the Same Query Are Merged When several checks of a rule produce the same name (case-insensitive, ignoring a trailing dot), the module now sends that DNS query only once ( b7a8744 #6303 ).
docs update · Oct 2026
· source
October 21, 2026 Patch Release with ARC Trust Fixes, Browser-Accurate HTML Parsing, Merged RBL Queries and force_actions Priorities
docs update · Oct 2026
· source
+Public suffix lookupshippedResolves public suffixes for URLs and domain matching using a dedicated Lua API, selector transforms, and replacement for legacy TLD tables.5 releases · first seen Sep 2026▸
Also counts toward: Scripting API
release
RBL URL composition maps and host TLD resolution now go through the public suffix lookup; ! exception rules are honoured and a host that is itself a public suffix resolves to the whole host.
4.2.0 · Sep 2026
· source
· release history
Adds rspamd_tld_lookup Lua function, url:get_public_suffix() method, and get_public_suffix selector transform to resolve public suffixes with full semantics.
4.2.0 · Sep 2026
· source
· release history
Maps used with the top filter in multimap must now list full suffixes (e.g. com.au instead of au) — the old TLD table is replaced by the public suffix lookup.
4.2.0 · Sep 2026
· source
· release history
The 10.5k-pattern TLD hyperscan database is removed from the scanner; free-text URL discovery now runs two passes (static matcher plus dot-anchored suffix labels) via the public suffix list.
4.2.0 · Sep 2026
· source
· release history
Exposes public suffix list semantics to Lua as rspamd_tld_lookup(), url:get_public_suffix() with match flags, and the get_public_suffix selector transform, supporting wildcards, exceptions, and ICANN/private splits.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
4.2.0 · Sep 2026
· source
· release history
+Package installation and deploymentshippedInstalls Rspamd from official apt/yum repositories or a Docker image, with distribution-specific packages including ASAN and experimental variants and build-from-source instructions.3 releases · 2 other sources · first seen Feb 2020▸
Also counts toward: Self-hosted deployment
release
Upstreams: make min_resolve_interval configurable
3.9.0 · Jul 2024
· source
· release history
Adds loongarch architecture support for Rspamd deployment
3.7.5 · Dec 2023
· source
· release history
Adds support for listening on systemd sockets by name.
2.4 · Feb 2020
· source
· release history
docs
This page covers installing Rspamd from packages or running the official Docker image, checking that it works, and fixing common problems. The downloads page lists the supported distribution releases, experimental and ASAN packages, and how to build from source.
seen Oct 2026
· source
+Cryptocurrency address scanningshippedDetects cryptocurrency wallet addresses within message content and attachments using a bounded Lua-based scanner with configurable text ingestion.2 releases · 2 other sources · first seen Oct 2026▸
release
Adds crypto_addresses() selector extractor to expose detected wallet addresses from the new lua_crypto_addresses scanner, which replaces bitcoin.lua.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
4.2.2 · Oct 2026
· source
· release history
Adds add_from_string to lua_crypto_addresses to feed text recovered from attachments into the bounded wallet-address scanner.
4.2.2 · Oct 2026
· source
· release history
docs
Detecting crypto wallet addresses - the symbols, selector and scam rules for cryptocurrency wallet addresses
docs update · Oct 2026
· source
example
Use the new crypto_addresses() selector in a metadata_exporter rule to include detected wallet addresses in alert emails sent by your spam-analysis pipeline.$ selector = "crypto_addresses()"
4.2.2 · Oct 2026
· source
+DMARC reporting automationshippedGenerates and sends DMARC aggregate reports via CLI commands.2 releases · 2 other sources · first seen Oct 2021▸
Also counts toward: Command-line interface
release
New rspamadm dmarc_report --recheck-rua flag re-validates cached DMARC report addresses against exclusion maps and RBLs before sending.
3.14.2 · Dec 2025
· source
· release history
rspamadm dmarc_report subcommand for sending DMARC reports
3.0 · Oct 2021
· source
· release history
example
Hold dmarc_report dispatch until a full batch is ready, reducing partial-report noise in high-volume environments.$ rspamadm dmarc_report --batch-wait
4.1.0 · Jun 2026
· source
Re-validate all cached DMARC RUA addresses against your exclusion maps or RBLs before dispatching reports.$ rspamadm dmarc_report --recheck-rua
3.14.2 · Dec 2025
· source
+Multiclass Bayesian classificationshippedEnables Bayesian learning with multiple named labels (e.g., spam, ham, phishing) instead of binary classification.3 releases · 1 other source · first seen Sep 2025▸
Also counts toward: ML-based detection, REST API, Scripting API, Web management console
release
Attachment filename sub-tokens improve Bayes classifier accuracy.
4.0.0 · Mar 2026
· source
· release history
Bayes classifiers now support arbitrary classes beyond binary spam/ham, with updated WebUI learning UI and new /bayes/classifiers endpoint.
4.0.0 · Mar 2026
· source
· release history
Adds multiclass Bayesian classification supporting 2–20 named labels (spam, ham, transactional, newsletters, phishing, etc.) with single-Redis-call efficiency, autolearn, and Lua API support via task:get_multiclass_result().
3.13.0 · Sep 2025
· source
· release history
example
Review autolearn statistics grouped by a chosen field and sorted by a metric to tune Bayes classifier performance.$ rspamadm autolearnstats --sort-by ham --group domain
4.1.0 · Jun 2026
· source
+Dynamic configuration map supportshippedProvides configuration-driven lookups using static maps and key-value pairs within Lua scripts and plugins.4 releases · first seen Oct 2019▸
Also counts toward: Scripting language support
release
Allows specifying the Redis protocol version in configuration.
3.12.0 · Jun 2025
· source
· release history
Adds extraction type support for from maps
3.8.2 · Feb 2024
· source
· release history
Adds lua_maps with static maps and key-value pair support for configuration-driven lookups
2.0 · Oct 2019
· source
· release history
+External antivirus integrationshippedIntegrates with external antivirus engines, such as Kaspersky, to perform malware detection on messages.4 releases · first seen Dec 2018▸
release
Allow setting fake EICAR patterns in antivirus module configuration
3.1 · Nov 2021
· source
· release history
antivirus.conf now supports the avast module for antivirus scanning
2.3 · Feb 2020
· source
· release history
Enhances antivirus module to specially handle encrypted files within archives
1.9.2 · Apr 2019
· source
· release history
Add Kaspersky antivirus support as a new integration for malware detection
1.8.3 · Dec 2018
· source
· release history
+Language identification via FastTextshippedUses the FastText library to detect the language of message content, improving classification accuracy for multilingual mail streams.3 releases · first seen Aug 2023▸
Also counts toward: ML-based detection
release
ENABLE_FASTTEXT cmake option no longer exists as libfasttext has been replaced with a built-in shim.
4.0.0 · Mar 2026
· source
· release history
Built-in mmap-based fasttext shim shares model memory across workers via MAP_SHARED, saving ~500 MB–7 GB per host and supporting hot-reload via maps infrastructure.
4.0.0 · Mar 2026
· source
· release history
Adds fasttext language detector module to Rspamd for improved language identification
3.6 · Aug 2023
· source
· release history
+Message structure inspection CLIshippedOffers command-line utilities to extract and analyze MIME data, HTML structures, URLs, and tokens from email files.2 releases · 1 other source · first seen Jul 2018▸
Also counts toward: Command-line interface
release
Allow to choose words format in rspamadm mime subcommand
1.8.3 · Dec 2018
· source
· release history
Adds rspamadm mime command-line utility for extracting MIME data, words, HTML structure, URLs, and Bayes tokens from email files
1.7.7 · Jul 2018
· source
· release history
example
Opt out of the new default that includes content URLs (e.g. from PDFs) in task:get_urls() results.$ # local.d/options.inc include_content_urls = false;
4.0.0 · Mar 2026
· source
+S3 backend storage for messagesshippedStores email messages and associated data in Amazon S3 using MessagePack serialization.3 releases · first seen Oct 2021▸
Store structured data in messagepack format when using S3 backend
3.1 · Nov 2021
· source
· release history
s3 module and s3.lua plugin to store messages directly in Amazon S3
3.0 · Oct 2021
· source
· release history
+Dynamic ratelimiting via selectorsshippedApplies rate limits based on dynamic criteria such as message digest, attachment data, and filenames using the selectors framework.3 releases · first seen Sep 2018▸
release
Support per-bucket configurations in ratelimit module
3.1 · Nov 2021
· source
· release history
Supports new ratelimiting scopes: by digest, by attachments data, and by filenames via the selectors framework
1.8.0 · Sep 2018
· source
· release history
Adds selectors support in the ratelimit module to apply limits based on dynamic criteria like message metadata
1.8.0 · Sep 2018
· source
· release history
+Lua pattern generation from globs/stringsshippedAllows creating Lua regular expressions directly from glob patterns or plain strings within configuration scripts.2 releases · 1 other source · first seen Nov 2018▸
Also counts toward: Scripting language support
release
Allows static regexp and glob patterns in Lua maps
1.9.2 · Apr 2019
· source
· release history
Enable creation of Lua regexps directly from glob patterns or plain strings using specialized functions
1.8.2 · Nov 2018
· source
· release history
docs
4.1.4 July 29, 2026 Patch Release Fixing a Controller Authentication Fail-Open, Regexp Engine Resource Bounds, and jemalloc Startup Segfaults
seen Jul 2026
· source
+Rspamd administration and visualization utilitiesshippedProvides command-line tools for visualizing configuration dependencies, managing MIME signing, and handling template rendering.3 releases · first seen Mar 2019▸
Also counts toward: Command-line interface
release
Adds rspamadm template subcommand to render configuration files using Jinja2 templates
1.9.1 · Apr 2019
· source
· release history
Adds configgraph utility to visualize configuration dependencies
1.9.0 · Mar 2019
· source
· release history
Adds rspamadm mime sign command for signing MIME messages
1.9.0 · Mar 2019
· source
· release history
+RBL DNS return code matcher configurationshippedAllows administrators to configure specific matchers for DNS return codes within the RBL subsystem, customizing how blocking is triggered.2 releases · first seen Oct 2023▸
release
phishtank.rspamd.com is now disabled by default; setups relying on Phishtank lookups will silently lose that check unless re-enabled.
4.2.3 · Oct 2026
· source
· release history
Introduces a new configuration option for RBL modules to use different matchers for DNS return codes
3.7.2 · Oct 2023
· source
· release history
+Bounded UCL parsing APIshippedProvides Lua APIs for untrusted UCL/JSON/msgpack parsing with configurable limits to prevent resource exhaustion on network inputs.2 releases · first seen Sep 2026▸
release
Adds ucl.untrusted_parser(), parser:set_limits(), and parser:get_limits() Lua API functions for bounded UCL parsing of untrusted network input.
4.2.0 · Sep 2026
· source
· release history
Adds ucl.untrusted_parser(), parser:set_limits(), and parser:get_limits() Lua API calls for bounded parsing of untrusted UCL/JSON/msgpack network input (controller and proxy bodies, checkv3 metadata).
4.2.0 · Sep 2026
· source
· release history
+ClickHouse data-skipping indexesshippedAdds support for data-skipping indexes in ClickHouse schemas to optimize point lookups on exported scan results.2 releases · first seen Sep 2026▸
release
Adds ClickHouse data-skipping indexes support for point lookups (schema 12).
4.2.0 · Sep 2026
· source
· release history
Adds ClickHouse data-skipping indexes for point lookups at schema version 12.
4.2.0 · Sep 2026
· source
· release history
+CSS compound selector evaluationshippedEnables evaluation of CSS compound selectors and combinators within the CSS module for more precise style matching.2 releases · first seen Sep 2026▸
release
Enables evaluation of compound selectors and combinators (e.g., div.mainbox, h1 + p) in the CSS module.
4.2.0 · Sep 2026
· source
· release history
Adds CSS compound selector and combinator evaluation, supporting div.mainbox, div p, div > p, h1 + p, and h1 ~ p patterns.
4.2.0 · Sep 2026
· source
· release history
+Fuzzy storage statistics samplingshippedExposes sampled statistics for fuzzy storage counts and per-source IP caps via command-line tools and metrics endpoints.1 release · 1 other source · first seen Sep 2026▸
Also counts toward: Command-line interface
release
Reports sampled fuzzy storage statistics from count scans (count_scan.stats_sample) in /fuzzystat and via rspamadm fuzzystat, with configurable per-source IP caps (max_ips_per_key, per-key max_ips).
4.2.0 · Sep 2026
· source
· release history
+Metadata exporter Redis list pushershippedAllows the metadata exporter to push events to Redis lists as an alternative to its default push methods.2 releases · first seen Sep 2026▸
release
Adds redis_list pusher option in the metadata_exporter configuration.
4.2.0 · Sep 2026
· source
· release history
Adds redis_list pusher support to metadata_exporter.
4.2.0 · Sep 2026
· source
· release history
+Redis ACL authentication supportshippedSupports username and password configuration for Redis connections to enable Access Control List (ACL) based authentication.2 releases · first seen Oct 2023▸
release
Adds upstream pinning for lua_redis requests.
4.2.0 · Sep 2026
· source
· release history
Adds username and password configuration options in the Redis module for ACL-based authentication
3.7.1 · Oct 2023
· source
· release history
+SVG attachment inspectionshippedExtracts content and detects smuggling indicators in SVG attachments, exposing symbols for scripts, foreign objects, data URIs, and forms.2 releases · first seen Sep 2026▸
release
Extracts SVG attachment content and smuggling indicators as new symbols: SVG_CONTENT, SVG_SCRIPT, SVG_FOREIGN_OBJECT, SVG_DATA_URI, SVG_FORM.
4.2.0 · Sep 2026
· source
· release history
Adds SVG_CONTENT, SVG_SCRIPT, SVG_FOREIGN_OBJECT, SVG_DATA_URI, SVG_FORM and related symbols for detecting smuggling in SVG attachments.
4.2.0 · Sep 2026
· source
· release history
+Advanced URL inspection architectureshippedImplements deep processing for URLs with consultation between C-level filters and Lua logic, along with HTML entity decoding utilities.2 releases · first seen Dec 2025▸
release
Adds deep processing architecture for URLs with C-to-Lua filter consultation
3.14.1 · Dec 2025
· source
· release history
Adds rspamd_util.decode_html_entities for HTML entity decoding
3.14.1 · Dec 2025
· source
· release history
+Obfuscation and URL analysis enhancementsshippedExtends detection capabilities to handle unnormalized Unicode in URLs, HTML base tags, CSS opacity, and additional HTML entities.2 releases · first seen Apr 2018▸
release
Adds obfuscated URL detection to url_suspect plugin
3.14.1 · Dec 2025
· source
· release history
Adds handling for unnormalised Unicode obfuscation in URLs
1.7.3 · Apr 2018
· source
· release history
+Encrypted map distributionshippedSupports distributing configuration maps securely using encrypted storage mechanisms.1 release · 1 other source · first seen Sep 2025▸
release
Adds encrypted maps to enable new secure map distribution scenarios.
3.13.1 · Sep 2025
· source
· release history
docs
Advanced spam filtering system and email processing framework that evaluates messages using regex, statistical analysis, and custom services.
+Message anonymizationshippedAdds capabilities to anonymize message data within the processing pipeline.2 releases · first seen Dec 2024▸
release
Enables LLM usage for anonymization of message content before external analysis.
3.11.1 · Mar 2025
· source
· release history
Adds new message anonymization capabilities.
3.11.0 · Dec 2024
· source
· release history
+Numeric URL inspectionshippedEnables Real-time Blackhole List (RBL) checks and analysis for URLs containing IP addresses rather than domain names.2 releases · first seen Oct 2023▸
release
Skips extra RBL checks when the Received IP matches the From IP, reducing redundant lookups.
3.11.0 · Dec 2024
· source
· release history
Enables RBL checks on numeric URLs by adding support for numeric_urls inspection in the RBL subsystem
3.7.1 · Oct 2023
· source
· release history
+Encrypted identity header handlingshippedManages OpenPGP and Autocrypt headers by supporting their oversigning to ensure integrity in forwarding or rewriting scenarios.2 releases · first seen Apr 2019▸
release
Allow oversigning headers when the exists mode is used
1.9.3 · May 2019
· source
· release history
Oversigns OpenPGP and Autocrypt headers.
1.9.2 · Apr 2019
· source
· release history
+Cookie management and encryptionshippedProvides utilities for generating, managing, and encrypting cookies for authentication or state management.2 releases · first seen Nov 2018▸
Also counts toward: Command-line interface
release
Adds cookie support in the replies module.
1.8.2 · Nov 2018
· source
· release history
Adds the rspamadm cookie utility and functions for generating encrypted cookies.
1.8.2 · Nov 2018
· source
· release history
+DKIM alignment reportingshippedProvides explicit reporting of DKIM From-alignment status via the R_DKIM_ALIGNED symbol, separating it from general validity scores.1 release · first seen Sep 2026▸
release
Adds DKIM From-alignment reporting as a dedicated R_DKIM_ALIGNED symbol, decided in the DKIM module.
4.2.0 · Sep 2026
· source
· release history
+Fuzzy storage health checkingshippedProvides CLI capabilities to query the live health and reachability of configured fuzzy storages.1 other source · first seen Sep 2026▸
Also counts toward: Command-line interface
example
Query the live health of all configured fuzzy storages from the command line to verify reachability before a maintenance window.$ curl -s http://localhost:11334/plugins/fuzzy/status | python3 -m json.tool
4.2.0 · Sep 2026
· source
+HTML injection supportshippedEnables decoded HTML payloads generated from Lua to be injected back into the processing pipeline for standard HTML parsing.1 release · first seen Sep 2026▸
release
Enables HTML parts to be injected from Lua so decoded payloads pass through the regular HTML parser.
4.2.0 · Sep 2026
· source
· release history
+Office relationship-level fact extractionshippedDetects macro, OLE object, remote template, and external data relationships in OOXML attachments (XLSX/PPTX/DOCX) via dedicated symbols.1 release · first seen Sep 2026▸
release
Adds OOXML_MACROS, OOXML_OLE_OBJECT, OOXML_REMOTE_TEMPLATE, OOXML_EXTERNAL_DATA symbols for relationship-level fact extraction in XLSX/PPTX/DOCX attachments.
4.2.0 · Sep 2026
· source
· release history
+Selective authentication header removalshippedAllows selective removal of Authentication-Results headers for specific domains via the Milter Headers module.1 release · first seen Dec 2025▸
release
New remove_ar_from option in Milter Headers enables selective removal of Authentication-Results headers targeting specific domains.
3.14.2 · Dec 2025
· source
· release history
+Composite rule statistics trackingshippedEnables tracking and control of composite rule statistics via a dedicated protocol command.1 release · first seen Dec 2025▸
release
Adds statistics tracking and control protocol command to Composites
3.14.1 · Dec 2025
· source
· release history
+HEIC image processing supportshippedDetects and processes HEIC image file formats within the message inspection pipeline.1 release · first seen Jun 2025▸
release
Adds detection support for HEIC image files via the magic module.
3.12.0 · Jun 2025
· source
· release history
+Message sanitizationshippedProvides utilities to manipulate email content and structure, including stripping attachments for sanitation purposes.1 other source · first seen Dec 2024▸
example
Strip attachments from a message in a pipeline — useful for sanitizing inbound mail before archiving or forwarding.$ rspamadm mime strip <path/to/message.eml>
3.11.0 · Dec 2024
· source
+Missing client identity header detectionshippedFlags messages that lack standard sending-client headers (X-Mailer and User-Agent) as suspicious or untrusted.1 release · first seen Nov 2023▸
release
New rule detects messages missing both X-Mailer and User-Agent headers
3.7.4 · Nov 2023
· source
· release history
+Whitespace-only content detectionshippedIdentifies and penalizes messages that contain only whitespace or images without any visible text, mitigating a common spam evasion technique.1 release · first seen Oct 2023▸
release
Adds blank_spam rule to detect emails with only whitespace or images, no text content
3.7.2 · Oct 2023
· source
· release history
+Bounce spam detectionshippedDetects and penalizes spam patterns based on email bounce messages.1 release · first seen Nov 2022▸
release
New detection: bounce spam rule added to penalize bounce-based spam patterns
3.4 · Nov 2022
· source
· release history
+Passive OS fingerprintingshippedDetects the operating system of connecting clients via passive TCP fingerprinting during SMTP interaction.1 release · first seen Oct 2019▸
release
Adds p0f scanner module for OS detection via passive TCP fingerprinting
2.0 · Oct 2019
· source
· release history
Lines in monospace are the tool's own words: help text
parsed from its source, or an endpoint from its API document. Under
release, a line is our summary of a dated release. Under
docs, it is quoted from the tool's own documentation or
website. Each links back to the source it came from.
Command line
View
Source
No command matches.
load a captured run
composed command
No matchesTry a different search, or clear a filter to see more.
option surface across analysed releases
options at that releaseadded, per releaseremoved, per release
option
found in
since
description
No matchesTry a different search, or clear a filter to see more.
option changes per release — drag across the rail to set a range
→
Values are placeholders taken from each option’s declared default.
Nothing is executed here — the output shown is a recording of a run
that already happened.
Score card
Shipping velocityreleases a month, last 12 months
Documentation qualityrelease-notes rubric, 0–100
Breaking-change disciplinehow rarely a release breaks users, and notice given
Maintenance riskquiet time against its own cadence, maintainers
Innovation & surfacenew capabilities, API and MCP surface
Community health
Contributor trenddistinct committers, this year against last
Maintainer concentrationbus factor now against a year ago
Issue backlog trendissues closed per issue opened, 12 months
Responsivenessmedian time to a maintainer’s first reply
Nine scores for Rspamd, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Each score is 0–100 on a published rubric, derived from data this site already shows.
A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
Documentation quality — the release-notes rubric published on the analytics page, unchanged.
Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail Rspamd puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
What Rspamd connects to, runs on and detects, read from its release notes and docs. So far: 2 new detections, 1 new supported platform, 1 retired supported platform.
Show
4 changes, tracked since Oct 10, 2026.
Oct 222026
newCryptocurrency wallet address detection
With crypto wallet addresses
the symbols, selector and scam rules for cryptocurrency wallet addresses
retiredDebian bullseye and Ubuntu focal (20.04) packages discontinued
Debian bullseye and Ubuntu focal (20.04) no longer get new packages. The last version published for bullseye is 4.1.5, and focal has been removed from the repository.
Covers 12: Bitcoin, Litecoin, Dogecoin, Tron, XRP, Zcash and 6 more
Rspamd now detects wallet addresses for Bitcoin and its forks, Litecoin, Dogecoin, Tron, XRP, Zcash, Cardano, Cosmos, Stellar, TON, Ethereum and Monero, with one independent symbol per currency. This replaces `bitcoin.lua`.
Nothing first seen in this window. That doesn't mean Rspamd shipped nothing, only that we found no record of it.
Changes per month New Updated Retired
2026-10
4
How we count
Read from 4 of 89 release notes and docs updates we hold for Rspamd. "First seen" is the earliest note that names something; "last" is the latest. Our history may start partway through Rspamd's life, so an old integration can show a recent first-seen date.
Each change counts once: "added 40 checks" is one line, so the numbers measure how often coverage moves, not how big the catalogue is or how well it detects.
Releases
Show
Coverage in all entries
89 entries
No entries match these filters.
October 20267
September 20264
August 20263
July 202612
June 20263
April 20261
March 20261
January 20261
December 20252
November 20251
October 20251
September 20252
June 20252
March 20251
December 20241
September 20241
July 20242
February 20241
January 20241
December 20231
November 20231
October 20232
August 20231
March 20231
November 20221
October 20221
April 20221
November 20211
October 20211
January 20211
September 20201
April 20201
February 20202
October 20192
May 20191
April 20192
March 20191
December 20181
November 20181
October 20181
September 20181
August 20181
July 20182
June 20181
May 20182
April 20181
March 20183
February 20181
October 20171
September 20171
July 20172
June 20171
Project health
Issue, contributor and maintainer activity in rspamd/rspamd, 2023-12 – 2026-11,
as of 2026-11-03. Twelve-month figures first; the trend lines run
the whole window.
Contributors38−12 vs prior 12 months
Maintainers2+1 joined · −1 left, last 12 months
Bus factor1committers behind half the commits
Community-filed99%of issues opened, last 12 months
Median time to close58 daysfirst maintainer reply 2.5 days
Open backlog258of 2,774 issues ever filed
Issues opened / month21 · 2communitymaintainers
Open backlog258
Contributors / month0
Commits / month0
Stars2,529
Issue themes, last 12 months
bugs 62%
features 17%
other 21%
Counts from the project's public repository and git history; no individuals
are identified. Maintainers are the committers covering 80% of the last year's
commits. how we measure this
Ships a vulnerable library
What its latest release locks, checked against known advisories.
sentence-transformers 2.7.0 in its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu)
critical
Rspamd 4.2.3 builds its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu) from contrib/neural-embedding-service/requirements-gpu.txt, which locks sentence-transformers 2.7.0. That version has GHSA-jhr6-gm9c-rqjv.
Fixed in sentence-transformers 5.6.0. No Rspamd release includes it yet.
transformers 5.5.0 in its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu)
high
Rspamd 4.2.3 builds its neural-embedding-service image (contrib/neural-embedding-service/Dockerfile.gpu) from contrib/neural-embedding-service/requirements-gpu.txt, which locks transformers 5.5.0. That version has GHSA-x9r9-c232-4q39 and 1 other high or critical flaw.