<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Thymian | Blog</title><description/><link>https://thymian.dev/</link><language>en</language><item><title>Introducing Thymian: HTTP Conformance for the Entire API Lifecycle</title><link>https://thymian.dev/blog/introducing-thymian/</link><guid isPermaLink="true">https://thymian.dev/blog/introducing-thymian/</guid><description>APIs routinely violate HTTP protocol requirements — causing broken caching, request smuggling, and security vulnerabilities that surface in production. Today we release Thymian, an open-source HTTP conformance engine that detects protocol-level drift across your entire API lifecycle. One rule set, every stage, zero drift.

</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today, we are excited to announce the release of &lt;strong&gt;Thymian&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Most API tools answer one question: does the response match the schema? Almost none ask a more fundamental one: does this API correctly implement HTTP?&lt;/p&gt;
&lt;p&gt;APIs routinely violate protocol requirements around caching headers, conditional requests, content negotiation, status codes, and method semantics. These violations can cause performance, interoperability and security issues such as broken CDN Caching, HTTP Request Smuggling, Cache Poisoned Denial-of-Service, Web Cache Deception — that surface not in development but in production, when the cost is highest.&lt;/p&gt;
&lt;p&gt;The few tools that do check HTTP conformance, such as REDbot or h2spec, operate on a single URL at a time, reference outdated specifications, and offer no integration into modern development workflows. None of them consider the complete API, its resources, their relations, or the complex flows between them. &lt;strong&gt;So, we built Thymian to close this gap.&lt;/strong&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;what-is-thymian&quot;&gt;What Is Thymian?&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Thymian is an open-source, language-agnostic HTTP conformance and API governance engine. It validates your APIs against RFC standards and your OpenAPI specification — statically, against live endpoints, and in recorded production traffic.&lt;/p&gt;
&lt;p&gt;The project originated as a master’s thesis at the University of Würzburg and Technical University of Applied Sciences Würzburg-Schweinfurt, developed with academic rigor and a clear goal: build the HTTP conformance tool that the ecosystem is missing. It is now available as &lt;strong&gt;v0.1&lt;/strong&gt; on &lt;a href=&quot;https://www.npmjs.com/package/thymian&quot;&gt;npm&lt;/a&gt; and &lt;a href=&quot;https://github.com/thymianofficial/thymian&quot;&gt;GitHub&lt;/a&gt;, built and maintained by &lt;a href=&quot;https://qupaya.com&quot;&gt;qupaya&lt;/a&gt;.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;three-modes-one-rule&quot;&gt;Three Modes, One Rule&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Thymian operates in three distinct execution modes; and the same rule works in all of them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code dir=&quot;auto&quot;&gt;thymian lint&lt;/code&gt;&lt;/strong&gt; — Static analysis of OpenAPI specifications. No running server required. Catch issues before a single line of code is written.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code dir=&quot;auto&quot;&gt;thymian test&lt;/code&gt;&lt;/strong&gt; — Conformance testing against live API endpoints. Send real HTTP requests and validate the responses against RFC rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code dir=&quot;auto&quot;&gt;thymian analyze&lt;/code&gt;&lt;/strong&gt; — Analysis of recorded HTTP traffic. Validate captured production traffic against the same rules, without modifying your infrastructure.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thymian adapts the execution context, while the rule logic remains the same. Just write your logic once, and validate it everywhere.&lt;/p&gt;
&lt;p&gt;Thymian ships with &lt;strong&gt;399 rules implementing RFC 9110&lt;/strong&gt; (HTTP Semantics), covering authentication, conditional requests, content negotiation, header field semantics, methods, status codes, range requests, and more. Each rule carries rich metadata: severity, RFC section reference, explanation, recommendation, and the specific HTTP participant it applies to — client, server, proxy, cache, or intermediary.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;api-drift--beyond-schema-comparison&quot;&gt;API Drift — Beyond Schema Comparison&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;API drift is typically understood as the gap between what an API’s specification describes and what the implementation actually does. Tools like Spectral, Dredd, Schemathesis, and Pact address this — but each covers only a single stage of the lifecycle, with its own rule format and its own scope:&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Stage&lt;/th&gt;&lt;th&gt;Typical Tools&lt;/th&gt;&lt;th&gt;Rule Format&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Design&lt;/td&gt;&lt;td&gt;Spectral, Bump.sh, Optic&lt;/td&gt;&lt;td&gt;&lt;code dir=&quot;auto&quot;&gt;.spectral.yml&lt;/code&gt; rulesets&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dev/CI&lt;/td&gt;&lt;td&gt;Dredd, Schemathesis, Pact&lt;/td&gt;&lt;td&gt;Test code, contracts&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Production&lt;/td&gt;&lt;td&gt;Treblle&lt;/td&gt;&lt;td&gt;Dashboard config&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;When a validation passes at design time but the same behavior breaks in production, there is no connection between the tools that could have caught it. Each stage is a silo.&lt;/p&gt;
&lt;p&gt;Thymian eliminates this fragmentation. One rule set, applied consistently from specification review through live testing to production traffic analysis. If a rule exists, it can be enforced at every stage without re-implementation, format translation, or coverage gaps between tools.&lt;/p&gt;
&lt;p&gt;But Thymian also goes further. The entire landscape of API drift tooling focuses on &lt;strong&gt;specification drift&lt;/strong&gt;: does the response body match the documented schema? None of these tools check &lt;strong&gt;protocol semantics drift&lt;/strong&gt;: does this API correctly implement HTTP as defined in RFCs 9110 and 9111?&lt;/p&gt;
&lt;p&gt;No existing tool validates whether a &lt;code dir=&quot;auto&quot;&gt;HEAD&lt;/code&gt; response carries the same headers as &lt;code dir=&quot;auto&quot;&gt;GET&lt;/code&gt; without a body. Whether a &lt;code dir=&quot;auto&quot;&gt;405 Method Not Allowed&lt;/code&gt; includes the required &lt;code dir=&quot;auto&quot;&gt;Allow&lt;/code&gt; header. Whether &lt;code dir=&quot;auto&quot;&gt;ETag&lt;/code&gt; and &lt;code dir=&quot;auto&quot;&gt;If-None-Match&lt;/code&gt; produce a correct &lt;code dir=&quot;auto&quot;&gt;304 Not Modified&lt;/code&gt; flow. Whether &lt;code dir=&quot;auto&quot;&gt;Cache-Control&lt;/code&gt; directives are semantically valid. Whether method safety and idempotency guarantees are upheld.&lt;/p&gt;
&lt;p&gt;Thymian is currently the only tool that detects protocol-level drift, and it does so across the entire API lifecycle.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;api-governance-across-the-lifecycle&quot;&gt;API Governance Across the Lifecycle&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;HTTP conformance rules are governance rules. When an organization defines that all APIs must correctly implement conditional requests, or that caching headers must follow RFC 9111, those requirements apply at every stage — not just in a CI linter that runs once before merge.&lt;/p&gt;
&lt;p&gt;Thymian enables this by treating rules as the single source of truth for API governance:&lt;/p&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Lifecycle Stage&lt;/th&gt;&lt;th&gt;Thymian Mode&lt;/th&gt;&lt;th&gt;What It Catches&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;API Design / Spec Review&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;code dir=&quot;auto&quot;&gt;lint&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Missing headers, incomplete schemas, wrong status codes in the OpenAPI document&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Development / CI&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;code dir=&quot;auto&quot;&gt;test&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Implementation drift — the live server deviates from specification and RFC requirements&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Staging / QA&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;code dir=&quot;auto&quot;&gt;test&lt;/code&gt; + &lt;code dir=&quot;auto&quot;&gt;analyze&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Integration drift — behavior changes when deployed behind proxies, load balancers, or CDNs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Production&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;code dir=&quot;auto&quot;&gt;analyze&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Production regressions — real traffic reveals violations that never appeared in test environments&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Rules are distributable as npm packages. &lt;code dir=&quot;auto&quot;&gt;@thymian/rules-rfc-9110&lt;/code&gt; ships with Thymian. Organizations can publish their own rule sets — &lt;code dir=&quot;auto&quot;&gt;@your-org/api-standards&lt;/code&gt; — containing company-specific governance rules that are enforced at every stage, in every team, with zero drift between what is checked in CI and what is validated in production.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One rule. Every stage. Zero drift.&lt;/strong&gt;&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;built-for-developer-and-ai-workflows&quot;&gt;Built for Developer and AI Workflows&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Thymian is CLI-first, designed for both human developers and AI agents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code dir=&quot;auto&quot;&gt;--no-interactive&lt;/code&gt;&lt;/strong&gt; mode for deterministic, non-interactive execution in CI and agent workflows&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rich error context&lt;/strong&gt; — every violation includes the rule name, RFC reference, severity, exact location, explanation, and recommendation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exit codes&lt;/strong&gt; and structured results for composable pipelines&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whether you work with GitHub Copilot, Cursor, Aider, or a local model, any tool that reads structured CLI output can consume Thymian’s results and act on them.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;everything-is-a-plugin&quot;&gt;Everything Is a Plugin&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Thymian follows a microkernel architecture. The core provides the event bus, plugin lifecycle, and rule engine. Everything else, like OpenAPI parsing, HTTP linting, live testing, traffic analysis, report formatting, request dispatching, is a plugin.&lt;/p&gt;
&lt;p&gt;Eight official plugins ship with Thymian. Custom plugins can be written in TypeScript or, via the WebSocket proxy plugin, in any programming language. Rules are authored with a type-safe fluent builder and can be shared as npm packages. Plugin communication is event-driven and loosely coupled. You can extend or replace any component without modifying framework code.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;get-started&quot;&gt;Get Started&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Run your first conformance check. No installation required:&lt;/p&gt;
&lt;div&gt;&lt;figure&gt;&lt;figcaption&gt;&lt;span&gt;&lt;/span&gt;&lt;/figcaption&gt;&lt;pre&gt;&lt;code&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;npx&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;thymian&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;lint&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;--spec&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;openapi:openapi.yaml&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;Thymian will validate your OpenAPI specification against RFC 9110 rules and report any conformance violations with explanations, RFC references, and recommendations for fixing them.&lt;/p&gt;
&lt;div&gt;&lt;h2 id=&quot;whats-next&quot;&gt;What’s Next&lt;/h2&gt;&lt;/div&gt;
&lt;p&gt;Thymian v0.1.x is the foundation. Upcoming work includes expanded RFC coverage (RFC 9111 caching semantics and beyond), more integrations, and continued growth of the rule and plugin ecosystem.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://thymian.dev&quot;&gt;Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/thymianofficial/thymian&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://discord.gg/TRSwCxbz9f&quot;&gt;Discord&lt;/a&gt; — join the community&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://thymian.dev/enterprise&quot;&gt;Enterprise Consulting&lt;/a&gt; — professional support from the creators of Thymian&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>announcement</category><category>release</category></item></channel></rss>