<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://kroxylicious.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://kroxylicious.io/" rel="alternate" type="text/html" /><updated>2026-04-22T05:31:50+00:00</updated><id>https://kroxylicious.io/feed.xml</id><title type="html">Kroxylicious</title><subtitle>Network proxy framework for Apache Kafka</subtitle><entry><title type="html">Kroxylicious release 0.20.0</title><link href="https://kroxylicious.io/blog/kroxylicious-proxy/releases/2026/04/01/release-0_20_0.html" rel="alternate" type="text/html" title="Kroxylicious release 0.20.0" /><published>2026-04-01T00:00:00+00:00</published><updated>2026-04-01T00:00:00+00:00</updated><id>https://kroxylicious.io/blog/kroxylicious-proxy/releases/2026/04/01/release-0_20_0</id><content type="html" xml:base="https://kroxylicious.io/blog/kroxylicious-proxy/releases/2026/04/01/release-0_20_0.html"><![CDATA[<p>We’re excited to announce the release of <a href="https://github.com/kroxylicious/kroxylicious/releases/tag/v0.20.0">Kroxylicious 0.20.0</a>! There’s been a lot of action, check out the full <a href="https://github.com/kroxylicious/kroxylicious/blob/main/CHANGELOG.md#0200">Changelog</a> for everything including deprecations, changes, and removals. We also have a <a href="https://www.youtube.com/watch?v=yRmRCf0-sZw">video guide</a> to the release.</p>

<p>Here are the highlights:</p>

<h3 id="connection-expiration-filter">Connection Expiration Filter</h3>

<p>Thanks to the work of <a href="https://github.com/May-Abo">May-Abo</a>, a new filter joins the family! The Connection Expiration filter closes client connections after a configurable maximum age. This is perfect for dynamic environments like Kubernetes where you want to rebalance connections across proxy instances as pods scale up or down.</p>

<h3 id="entity-isolation-filter">Entity Isolation Filter</h3>

<p>Multi-tenancy gets even better with the Entity Isolation filter. Initially supporting <code class="language-plaintext highlighter-rouge">groupId</code> and <code class="language-plaintext highlighter-rouge">transactionalId</code> entity types, this filter helps you enforce isolation boundaries between tenants sharing a cluster.</p>

<h3 id="record-validation-filter---apicurio-v3-upgrade">Record Validation Filter - Apicurio v3 Upgrade</h3>

<ul>
  <li>Record validation just got a major upgrade with Apicurio v3. The default schema identification has changed from <code class="language-plaintext highlighter-rouge">globalId</code> to <code class="language-plaintext highlighter-rouge">contentId</code> for better interoperability with Confluent-based Kafka clients. To support migrations, you can still use the old behavior by setting <code class="language-plaintext highlighter-rouge">wireFormatVersion</code> to <code class="language-plaintext highlighter-rouge">V2</code>, though this mode is deprecated and will be removed in a future release.</li>
  <li>The schema validation filter can now connect to a schema registry protected by internally signed TLS certificates. One less obstacle for air-gapped or enterprise environments.</li>
</ul>

<h3 id="kubernetes-operator-enhancements">Kubernetes Operator Enhancements</h3>

<p>Two improvements for Kubernetes users:</p>
<ul>
  <li><strong>OpenShift Route Support</strong>: Enable external access to Virtual Clusters via OpenShift Routes using <code class="language-plaintext highlighter-rouge">KafkaProxyIngress.spec.openShiftRoute</code>. Off-cluster client access is now a breeze on OpenShift.</li>
  <li><strong>Server-Side Apply</strong>: The operator now uses Server-Side Apply for all dependent resources. Existing deployments are unaffected, and externally-applied patches (like annotations from observability tooling) will now survive operator reconciles.</li>
</ul>

<h3 id="javadocs-on-the-website">Javadocs on the Website</h3>

<p>Public API Javadocs are now published alongside version-specific documentation on <a href="https://kroxylicious.io/documentation/0.20.0/javadoc/index.html">kroxylicious.io</a>, making it easier to explore our APIs without leaving your browser.</p>

<h3 id="configuration-improvements">Configuration Improvements</h3>

<ul>
  <li><strong>Configurable Netty shutdown</strong>: New <code class="language-plaintext highlighter-rouge">shutdownQuietPeriod</code> and <code class="language-plaintext highlighter-rouge">shutdownTimeout</code> fields give you fine-grained control over Netty shutdown behavior with Go-style durations.</li>
  <li><strong>Duration serialization</strong>: Filter Config classes can now use <code class="language-plaintext highlighter-rouge">Duration</code> types that automatically serialize to/from Go-style strings (e.g., “1h”) without any annotations.</li>
</ul>

<h3 id="artefacts">Artefacts</h3>

<p>Binary distributions and container images are available on the <a href="https://kroxylicious.io/download/0.20.0/">download</a> page.</p>

<h3 id="feedback">Feedback</h3>

<p>We’d love to hear from you! Whether you’re kicking the tyres, running Kroxylicious in production, or just find the project interesting — drop by and say hello.
You can reach us through <a href="https://kroxylicious.slack.com">Slack</a>, <a href="https://github.com/kroxylicious/kroxylicious/issues">GitHub</a> or even <a href="https://bsky.app/profile/kroxylicious.io">bsky</a>), or tell us in person on one of our upcoming <a href="/join-us/community-call/">community calls</a>.</p>]]></content><author><name>Rob Young</name></author><category term="blog" /><category term="kroxylicious-proxy" /><category term="releases" /><category term="releases" /><category term="kroxylicious-proxy" /><summary type="html"><![CDATA[We’re excited to announce the release of Kroxylicious 0.20.0! There’s been a lot of action, check out the full Changelog for everything including deprecations, changes, and removals. We also have a video guide to the release.]]></summary></entry><entry><title type="html">New Video: Understand Kroxylicious in under 3 minutes</title><link href="https://kroxylicious.io/videos/learning/2026/03/09/new-videos-understand-proxy.html" rel="alternate" type="text/html" title="New Video: Understand Kroxylicious in under 3 minutes" /><published>2026-03-09T00:00:00+00:00</published><updated>2026-03-09T00:00:00+00:00</updated><id>https://kroxylicious.io/videos/learning/2026/03/09/new-videos-understand-proxy</id><content type="html" xml:base="https://kroxylicious.io/videos/learning/2026/03/09/new-videos-understand-proxy.html"><![CDATA[<p>Want to see how Kroxylicious simplifies Apache Kafka® governance? We’ve put together a 3-minute visual breakdown of where the proxy sits in your stack and the problems it solves.</p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/xLOjKScpJ3Q?si=awi7JDIPsn4sGdqM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>

<p>Key Takeaways:</p>

<ul>
  <li>Zero Client Changes: Kroxylicious is wire-protocol compatible. Your applications keep using their existing Kafka clients without knowing a proxy is in the middle.</li>
  <li>Centralized Control: Instead of chasing down policy updates across different languages and teams, you enforce them at the proxy layer.</li>
  <li>Plug-and-Play Filters: Use the built-in Filter mechanism to intercept and transform traffic. For example, our Record Encryption Filter can automatically handle PII encryption before data ever touches the broker.</li>
</ul>

<p>Ready to see it in action? Head over to <a href="https://kroxylicious.io">kroxylicious.io</a> or jump straight into our <a href="https://kroxylicious.io/quickstarts">quickstarts</a>. We’ve also conveniently recorded a video demonstration of the Proxy Quickstart.</p>

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/7FIU5gHnykg?si=-LxLoyJZeFj_Pzk0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>]]></content><author><name>Rob Young</name></author><category term="videos" /><category term="learning" /><summary type="html"><![CDATA[Want to see how Kroxylicious simplifies Apache Kafka® governance? We’ve put together a 3-minute visual breakdown of where the proxy sits in your stack and the problems it solves.]]></summary></entry><entry><title type="html">Scaling for the Future: Evolving Kroxylicious Governance</title><link href="https://kroxylicious.io/2026/03/04/evolving-governance.html" rel="alternate" type="text/html" title="Scaling for the Future: Evolving Kroxylicious Governance" /><published>2026-03-04T11:00:00+00:00</published><updated>2026-03-04T11:00:00+00:00</updated><id>https://kroxylicious.io/2026/03/04/evolving-governance</id><content type="html" xml:base="https://kroxylicious.io/2026/03/04/evolving-governance.html"><![CDATA[<p>Hot on the heels of <a href="https://kroxylicious.io/blog/kroxylicious-proxy/releases/2026/03/04/release-0_19_0.html">the release of Kroxylicious 0.19.0</a> we have some other news to share.
We are excited to announce a shift in how we manage the project, partly based on the proven model used by the Apache Software Foundation.</p>

<p>We’ve always believed that open-source success is built on transparency, community trust, and a shared vision. 
The project continues to evolve, and our governance model needs to change with it while ensuring the project remains truly vendor-neutral.</p>

<h2 id="decoupling-roles-introducing-committers-and-project-managers">Decoupling Roles: Introducing Committers and Project Managers</h2>

<p>Previously, we relied on a flat “Code Owner” structure. 
While this worked well in the early days, we realised it was starting to make it harder to scale the project: 
In order to grow, we are going to need more people able to review and merge contributions. 
But those people might not always be interested, or able to make a commitment to helping ensure the project’s long term sustainability.</p>

<p>To solve this, we have split these duties into two distinct roles:</p>
<ul>
  <li><strong>Committers</strong> focus on code quality and technical output. 
They have write access to our repositories and are responsible for reviewing and merging contributions.</li>
  <li><strong>Project Managers</strong> (PMs) focus on the long-term health and sustainability of the project. 
They manage the governance files, handle community elections, and ensure the project remains aligned with its goals and deal with our interactions with the CommonHaus foundation.</li>
</ul>

<p>We hope that by decoupling these roles, we’ll be better able to scale our number of Committers to match our review volume without burdening them with administrative overhead. 
It creates a clearer pathway for contributors to take on leadership roles based on their interests, whether that’s deep technical work or project stewardship.</p>

<p>These changes are already reflected in our updated <a href="https://github.com/kroxylicious/.github/blob/main/GOVERNANCE.md"><code class="language-plaintext highlighter-rouge">GOVERNANCE.md</code></a>.</p>

<p>The initial <a href="https://github.com/kroxylicious/.github/blob/main/COMMITTERS.md"><code class="language-plaintext highlighter-rouge">COMMITTERS.md</code></a> and <a href="https://github.com/kroxylicious/.github/blob/main/PMs.md"><code class="language-plaintext highlighter-rouge">PMs.md</code></a> are the same people who were previously code owners and project admins. 
This revised governance model has not changed anyone’s access.</p>

<h2 id="moving-beyond-codeowners">Moving Beyond <code class="language-plaintext highlighter-rouge">CODEOWNERS</code></h2>

<p>We are also moving away from using the GitHub <code class="language-plaintext highlighter-rouge">CODEOWNERS</code> file to enforce directory-level restrictions.</p>

<p>We trust Committers to know the limits of their expertise and to pull in the right subject matter experts when a PR spans areas outside their immediate knowledge.
This reduces the friction of managing complex ownership files and avoids the pitfalls of stale ownership definitions that don’t match the current team structure.</p>

<h2 id="strengthening-our-organizational-memory">Strengthening Our Organizational Memory</h2>

<p>The 90 day history we have on our free Slack workspace is starting to hurt.
As we grow, we need to ensure that important technical decisions aren’t lost.</p>

<p>We think that, even in 2026, mailing lists are the least-worst way to share and record formal technical discussions and voting.</p>

<ul>
  <li>The barrier to entry is low</li>
  <li>Everyone gets their own copy of the history, but there’s a public archive too</li>
  <li>Everyone can use familiar tools to organise and search history</li>
</ul>

<p>These features should ensure our decision-making process is archived, searchable, and publicly verifiable.</p>

<p>So we’d like the <a href="https://groups.google.com/d/forum/kroxylicious-dev"><code class="language-plaintext highlighter-rouge">kroxylicious-dev</code></a> list to be our primary channel for development discussions, open to all contributors and committers.
Meanwhile, Slack remains our home for quick, day-to-day conversation.</p>

<div class="container mt-4">
  <div class="table-responsive">
    <table class="table table-striped table-bordered align-middle">
      <thead class="table-primary">
        <tr>
          <th scope="col" class="w-50">Use <strong>Slack</strong> for...</th>
          <th scope="col" class="w-50">Use <strong>Mailing Lists</strong> for...</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Quick check-ins</strong> and status updates.</td>
          <td><strong>Formal technical discussions</strong> and proposals.</td>
        </tr>
        <tr>
          <td><strong>Real-time coordination</strong> on active tasks.</td>
          <td><strong>Voting</strong> on technical decisions.</td>
        </tr>
        <tr>
          <td><strong>Informal brainstorming</strong> and team culture.</td>
          <td><strong>Summaries</strong> of major decisions made in Slack.</td>
        </tr>
        <tr>
          <td><strong>Urgent alerts</strong> that need an immediate response.</td>
          <td><strong>Long-form information</strong> that should be searchable.</td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

<p>So how do you join the <a href="https://groups.google.com/d/forum/kroxylicious-dev"><code class="language-plaintext highlighter-rouge">kroxylicious-dev</code></a> list?</p>

<ul>
  <li>You can read and subscribe to the list on <a href="https://groups.google.com/d/forum/kroxylicious-dev">google groups</a>.</li>
  <li>Alternatively, you can subscribe by sending an empty email to <a href="mailto:kroxylicious-dev+subscribe@googlegroups.com">kroxylicious-dev+subscribe@googlegroups.com</a>,</li>
  <li>and unsubscribe by sending an empty email to <a href="mailto:kroxylicious-dev+unsubscribe@googlegroups.com">kroxylicious-dev+unsubscribe@googlegroups.com</a></li>
</ul>

<p>The project managers will use a private list, but only for communication that needs to remain private. 
You can contact them by email to <a href="mailto:kroxylicious-pms@googlegroups.com">kroxylicious-pms@googlegroups.com</a>.</p>

<h2 id="building-community-connection">Building Community Connection</h2>

<p>Governance isn’t just about documents and voting; it’s about people. 
We want to ensure that our contributors feel connected to the project’s direction and to each other.</p>

<p>To facilitate more direct and synchronous collaboration, we are launching a regular Community Call that anyone can join.</p>

<p>The Kroxylicious community is spread around the world, and we want to be as inclusive as possible. 
In particular, we didn’t want the meeting to always be in the middle of the night for someone in an unfortunate timezone. 
To support this, while the meeting cadence is every two weeks, the meeting time will alternate by ±12 hours every other call. 
But timezones and daylight savings time makes it a bit tricky to describe in a blog post.</p>

<p>You can see the time of upcoming meetings <a href="https://kroxylicious.io/join-us/community-call/">on the website</a>, and add the meeting schedule to your calendar app.</p>

<h2 id="whats-next">What’s Next?</h2>

<p>We’re excited to continue building Kroxylicious in an environment that is open, inclusive, and built to last. 
Check out the updated docs and let us know what you think!</p>]]></content><author><name>Tom Bentley</name></author><summary type="html"><![CDATA[Hot on the heels of the release of Kroxylicious 0.19.0 we have some other news to share. We are excited to announce a shift in how we manage the project, partly based on the proven model used by the Apache Software Foundation.]]></summary></entry><entry><title type="html">Kroxylicious release 0.19.0</title><link href="https://kroxylicious.io/blog/kroxylicious-proxy/releases/2026/03/04/release-0_19_0.html" rel="alternate" type="text/html" title="Kroxylicious release 0.19.0" /><published>2026-03-04T00:00:00+00:00</published><updated>2026-03-04T00:00:00+00:00</updated><id>https://kroxylicious.io/blog/kroxylicious-proxy/releases/2026/03/04/release-0_19_0</id><content type="html" xml:base="https://kroxylicious.io/blog/kroxylicious-proxy/releases/2026/03/04/release-0_19_0.html"><![CDATA[<p>We’re excited to announce the release of <a href="https://github.com/kroxylicious/kroxylicious/releases/tag/v0.19.0">Kroxylicious 0.19.0</a>! There’s a lot to dig into — check out the full <a href="https://github.com/kroxylicious/kroxylicious/blob/main/CHANGELOG.md#0190">Changelog</a> for everything including deprecations, changes, and removals.</p>

<p>Here are the highlights:</p>

<h3 id="kafka-42-support">Kafka 4.2 Support</h3>

<p>Hot off the press — Kroxylicious now bites into Kafka 4.2! We are keeping pace with upstream Kafka releases so your filters can take advantage of new RPCs as they land. All versions of Kroxylicious can be deployed in front of any supported version of Apache Kafka.</p>

<h3 id="authorizer-filter-transactional-id-support">Authorizer Filter: Transactional ID Support</h3>

<p>The Authorizer Filter just got more powerful. It now covers transactional ID authorization, so you can enforce <code class="language-plaintext highlighter-rouge">WRITE</code> and <code class="language-plaintext highlighter-rouge">DESCRIBE</code> operations with full parity to Apache Kafka’s own ACL authorization.</p>

<h3 id="kubernetes-secrets-as-trust-anchors">Kubernetes Secrets as Trust Anchors</h3>

<p>Good news for Kubernetes users: you can now use Kubernetes Secrets in the <code class="language-plaintext highlighter-rouge">trustAnchorRef</code> field of <code class="language-plaintext highlighter-rouge">KafkaService</code> and <code class="language-plaintext highlighter-rouge">VirtualKafkaCluster</code> custom resources. One less thing to manage outside of your cluster.</p>

<h3 id="filter-api-api-version-in-onresponse">Filter API: API Version in <code class="language-plaintext highlighter-rouge">onResponse</code></h3>

<p><code class="language-plaintext highlighter-rouge">ResponseFilter#onResponse</code> now receives API version information via a new five-argument form. The previous four-argument form is deprecated.</p>

<h3 id="munching-on-idle-connections">Munching on Idle Connections</h3>

<p>Ever wanted to clean up connections that have outstayed their welcome? Kroxylicious can now be configured with idle timeouts for client connections:</p>
<ul>
  <li><code class="language-plaintext highlighter-rouge">unauthenticatedIdleTimeout</code> — for connections that haven’t authenticated yet</li>
  <li><code class="language-plaintext highlighter-rouge">authenticatedIdleTimeout</code> — for authenticated connections</li>
</ul>

<p>Both use Go-style duration formats. And to help you keep an eye on things, a new metric <code class="language-plaintext highlighter-rouge">kroxylicious_client_to_proxy_disconnects_total</code> tracks why connections are closing — idle timeout, client-initiated, or server-initiated.</p>

<h3 id="artefacts">Artefacts</h3>

<p>Binaries are attached to the GitHub <a href="https://github.com/kroxylicious/kroxylicious/releases/tag/v0.19.0">release</a> and available through <a href="https://repo1.maven.org/maven2/io/kroxylicious/kroxylicious-app/0.19.0/">Maven Central</a>.</p>

<p>Container images are available on quay.io:</p>

<table>
  <thead>
    <tr>
      <th>Image</th>
      <th>Repository</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Proxy</td>
      <td><a href="https://quay.io/repository/kroxylicious/kroxylicious?tab=tags">quay.io/kroxylicious/kroxylicious:0.19.0</a> (<code class="language-plaintext highlighter-rouge">sha256:f9cd83454ed1d6507be7876fb6a712c8c1d611fb26db47675e55777c10f46228</code>)</td>
    </tr>
    <tr>
      <td>Operator</td>
      <td><a href="https://quay.io/repository/kroxylicious/operator?tab=tags">quay.io/kroxylicious/operator:0.19.0</a> (<code class="language-plaintext highlighter-rouge">sha256:a531ec14e555d5df719cb5c64d751d10d515fa791044fe8b059106d25bcbc39a</code>)</td>
    </tr>
  </tbody>
</table>

<h3 id="feedback">Feedback</h3>

<p>We’d love to hear from you! Whether you’re kicking the tyres, running Kroxylicious in production, or just find the project interesting — drop by and say hello.
You can reach us through <a href="https://kroxylicious.slack.com">Slack</a>, <a href="https://github.com/kroxylicious/kroxylicious/issues">GitHub</a> or even <a href="https://bsky.app/profile/kroxylicious.io">bsky</a>), or tell us in person on one of our upcoming <a href="/join-us/community-call/">community calls</a>.</p>]]></content><author><name>Sam Barker</name></author><category term="blog" /><category term="kroxylicious-proxy" /><category term="releases" /><category term="releases" /><category term="kroxylicious-proxy" /><summary type="html"><![CDATA[We’re excited to announce the release of Kroxylicious 0.19.0! There’s a lot to dig into — check out the full Changelog for everything including deprecations, changes, and removals.]]></summary></entry><entry><title type="html">kroxylicious-junit5-extension release 0.15.0</title><link href="https://kroxylicious.io/releases/junit5-extension/2026/02/18/release-0_15_0-junit-extension.html" rel="alternate" type="text/html" title="kroxylicious-junit5-extension release 0.15.0" /><published>2026-02-18T00:00:00+00:00</published><updated>2026-02-18T00:00:00+00:00</updated><id>https://kroxylicious.io/releases/junit5-extension/2026/02/18/release-0_15_0-junit-extension</id><content type="html" xml:base="https://kroxylicious.io/releases/junit5-extension/2026/02/18/release-0_15_0-junit-extension.html"><![CDATA[<p>The Kroxylicious project is very pleased to announce the <a href="https://github.com/kroxylicious/kroxylicious-junit5-extension/releases/tag/v0.15.0">0.15.0</a> release of our Junit5 Extension.</p>

<p>We’ve refreshed our dependencies, including an essential upgrade to Apache Kafka 4.2.0. We’ve also smoothed out the setup process, ensuring the new Kafka Queues feature works seamlessly straight out of the box.</p>

<h3 id="feedback">Feedback</h3>

<p>Please let us know, through <a href="https://kroxylicious.slack.com">Slack</a> or <a href="https://github.com/kroxylicious/kroxylicious-junit5-extension/issues">GitHub</a>, if you find the extension interesting or helpful.</p>]]></content><author><name>Keith Wall</name></author><category term="releases" /><category term="junit5-extension" /><summary type="html"><![CDATA[The Kroxylicious project is very pleased to announce the 0.15.0 release of our Junit5 Extension.]]></summary></entry><entry><title type="html">kroxylicious-junit5-extension release 0.14.0</title><link href="https://kroxylicious.io/releases/junit5-extension/2026/01/05/release-0_14_0-junit-extension.html" rel="alternate" type="text/html" title="kroxylicious-junit5-extension release 0.14.0" /><published>2026-01-05T00:00:00+00:00</published><updated>2026-01-05T00:00:00+00:00</updated><id>https://kroxylicious.io/releases/junit5-extension/2026/01/05/release-0_14_0-junit-extension</id><content type="html" xml:base="https://kroxylicious.io/releases/junit5-extension/2026/01/05/release-0_14_0-junit-extension.html"><![CDATA[<p>The Kroxylicious project is very pleased to announce the <a href="https://github.com/kroxylicious/kroxylicious-junit5-extension/releases/tag/v0.14.0">0.14.0</a> release of our Junit5 Extension.</p>

<p>The main change in this release is the upgrade of <a href="https://testcontainers.com/">Testcontainers</a> dependency from 1.x to 2.x.
The Junit 5 Extension uses Testcontainers to create broker instances for your Junit tests (when you choose <a href="https://github.com/kroxylicious/kroxylicious-junit5-extension/blob/v0.14.0/README.md#choosing-the-provisioning-mechanism">container-based provisioning</a>).
As a user of the Junit 5 Extension, the changes should be completely transparent to you.</p>

<h3 id="feedback">Feedback</h3>

<p>Please let us know, through <a href="https://kroxylicious.slack.com">Slack</a> or <a href="https://github.com/kroxylicious/kroxylicious-junit5-extension/issues">GitHub</a>, if you find the extension interesting or helpful.</p>]]></content><author><name>Keith Wall</name></author><category term="releases" /><category term="junit5-extension" /><summary type="html"><![CDATA[The Kroxylicious project is very pleased to announce the 0.14.0 release of our Junit5 Extension.]]></summary></entry><entry><title type="html">Kroxylicious release 0.18.0</title><link href="https://kroxylicious.io/blog/kroxylicious-proxy/releases/2025/11/28/release-0_18_0.html" rel="alternate" type="text/html" title="Kroxylicious release 0.18.0" /><published>2025-11-28T00:00:00+00:00</published><updated>2025-11-28T00:00:00+00:00</updated><id>https://kroxylicious.io/blog/kroxylicious-proxy/releases/2025/11/28/release-0_18_0</id><content type="html" xml:base="https://kroxylicious.io/blog/kroxylicious-proxy/releases/2025/11/28/release-0_18_0.html"><![CDATA[<p>The Kroxylicious project is very pleased to announce the release of <a href="https://github.com/kroxylicious/kroxylicious/releases/tag/v0.18.0">Kroxylicious 0.18.0</a>. See the <a href="https://github.com/kroxylicious/kroxylicious/blob/main/CHANGELOG.md#0180">Changelog</a> for a list of changes and summary of Deprecations, Changes and Removals.</p>

<p>The main highlights of this release are:</p>

<h3 id="filter-api-improvements">Filter API Improvements</h3>

<ul>
  <li>Filters now have a convenient mechanism to convert from topic ids <a href="https://cwiki.apache.org/confluence/display/KAFKA/KIP-516%3A+Topic+Identifiers">KIP-516</a> to topic names this is based on <a href="https://github.com/kroxylicious/design/blob/main/proposals/008-topic-name-lookup-facility.md">design proposal#008</a></li>
  <li>Filters now have access to a Subject API that provides convenient access to the authenticated principals established by the channel. This is a building block for filters that need to enforce authorization checks or want to write an audit trail of Kafka actions. Further details and context can be found
in <a href="https://github.com/kroxylicious/design/blob/main/proposals/009-authorizer.md">design proposal#009</a></li>
</ul>

<h3 id="authorizer-filter">Authorizer Filter</h3>

<p>We’ve added a new Authorizer Filter that can authorize Topic operations using the same semantics as Kafka own Authorization API. This allows you to enforce authorizations rules at the proxy.</p>

<h3 id="azure-kms-integration-for-record-encryption">Azure KMS integration for Record Encryption</h3>

<p>With this release, Record Encryption now has the capability to use Azure Vault for storage of the key material used to encrypt Kafka records.</p>

<h3 id="feedback">Feedback</h3>

<p>Please let us know if you find the project interesting or helpful, and especially if
you have deployed it in production.
You can reach us through <a href="https://kroxylicious.slack.com">Slack</a>, <a href="https://github.com/kroxylicious/kroxylicious/issues">GitHub</a> or even <a href="https://bsky.app/profile/kroxylicious.io">bsky</a>).</p>]]></content><author><name>Keith Wall</name></author><category term="blog" /><category term="kroxylicious-proxy" /><category term="releases" /><category term="releases" /><category term="kroxylicious-proxy" /><summary type="html"><![CDATA[The Kroxylicious project is very pleased to announce the release of Kroxylicious 0.18.0. See the Changelog for a list of changes and summary of Deprecations, Changes and Removals.]]></summary></entry><entry><title type="html">kroxylicious-junit5-extension release 0.13.0</title><link href="https://kroxylicious.io/releases/junit5-extension/2025/11/07/release-0_13_0-junit-extension.html" rel="alternate" type="text/html" title="kroxylicious-junit5-extension release 0.13.0" /><published>2025-11-07T00:00:00+00:00</published><updated>2025-11-07T00:00:00+00:00</updated><id>https://kroxylicious.io/releases/junit5-extension/2025/11/07/release-0_13_0-junit-extension</id><content type="html" xml:base="https://kroxylicious.io/releases/junit5-extension/2025/11/07/release-0_13_0-junit-extension.html"><![CDATA[<p>The Kroxylicious project is very pleased to announce the <a href="https://github.com/kroxylicious/kroxylicious-junit5-extension/releases/tag/v0.13.0">0.13.0</a> release of our Junit5 Extension.
This release replaces the Keytool-based certificate generator with an implementation backed by Netty Certificate Builder.
This release deprecates the KeytoolCertificateGenerator class.</p>

<h3 id="feedback">Feedback</h3>

<p>Please let us know, through <a href="https://kroxylicious.slack.com">Slack</a> or <a href="https://github.com/kroxylicious/kroxylicious-junit5-extension/issues">GitHub</a>, if you find the extension interesting or helpful.</p>]]></content><author><name>Keith Wall</name></author><category term="releases" /><category term="junit5-extension" /><summary type="html"><![CDATA[The Kroxylicious project is very pleased to announce the 0.13.0 release of our Junit5 Extension. This release replaces the Keytool-based certificate generator with an implementation backed by Netty Certificate Builder. This release deprecates the KeytoolCertificateGenerator class.]]></summary></entry><entry><title type="html">Kroxylicious release 0.17.1</title><link href="https://kroxylicious.io/blog/kroxylicious-proxy/kroxylicious-operator/releases/2025/11/06/release-0_17_1.html" rel="alternate" type="text/html" title="Kroxylicious release 0.17.1" /><published>2025-11-06T12:00:00+00:00</published><updated>2025-11-06T12:00:00+00:00</updated><id>https://kroxylicious.io/blog/kroxylicious-proxy/kroxylicious-operator/releases/2025/11/06/release-0_17_1</id><content type="html" xml:base="https://kroxylicious.io/blog/kroxylicious-proxy/kroxylicious-operator/releases/2025/11/06/release-0_17_1.html"><![CDATA[<p>The Kroxylicious project is very pleased to announce the release
of <a href="https://github.com/kroxylicious/kroxylicious/releases/tag/v0.17.1">Kroxylicious 0.17.1</a>. See
the <a href="https://github.com/kroxylicious/kroxylicious/blob/main/CHANGELOG.md#0171">Changelog</a> for a list of changes and
summary of Deprecations, Changes and Removals.</p>

<p>The main highlights of this release are:</p>

<h3 id="librdkafka-compression-fix">Librdkafka compression Fix</h3>

<p>This patch addresses an issue where the proxy failed to relay special handling logic introduced in Apache Kafka broker v4.0. This logic is required for deprecated ProduceRequest versions (v0-v2).</p>

<p>The bug prevented librdkafka clients older than v2.11.0 from enabling compression when connecting through the proxy. As librdkafka supports a wide variety of language bindings we are releasing this fix as a special patch release rather than waiting for v0.18.0.</p>

<h3 id="feedback">Feedback</h3>

<p>Please let us know if you find the project interesting or helpful, and especially if
you have deployed it in production.
You can reach us
through <a href="https://kroxylicious.slack.com">Slack</a>, <a href="https://github.com/kroxylicious/kroxylicious/issues">GitHub</a> or
even <a href="https://bsky.app/profile/kroxylicious.io">bsky</a>).</p>]]></content><author><name>Sam Barker</name></author><category term="blog" /><category term="kroxylicious-proxy" /><category term="kroxylicious-operator" /><category term="releases" /><category term="releases" /><category term="kroxylicious-proxy" /><category term="kroxylicious-operator" /><summary type="html"><![CDATA[The Kroxylicious project is very pleased to announce the release of Kroxylicious 0.17.1. See the Changelog for a list of changes and summary of Deprecations, Changes and Removals.]]></summary></entry><entry><title type="html">Kroxylicious release 0.17.0</title><link href="https://kroxylicious.io/blog/kroxylicious-proxy/kroxylicious-operator/releases/2025/10/27/release-0_17_0.html" rel="alternate" type="text/html" title="Kroxylicious release 0.17.0" /><published>2025-10-27T12:00:00+00:00</published><updated>2025-10-27T12:00:00+00:00</updated><id>https://kroxylicious.io/blog/kroxylicious-proxy/kroxylicious-operator/releases/2025/10/27/release-0_17_0</id><content type="html" xml:base="https://kroxylicious.io/blog/kroxylicious-proxy/kroxylicious-operator/releases/2025/10/27/release-0_17_0.html"><![CDATA[<p>The Kroxylicious project is very pleased to announce the release
of <a href="https://github.com/kroxylicious/kroxylicious/releases/tag/v0.17.0">Kroxylicious 0.17.0</a>. See
the <a href="https://github.com/kroxylicious/kroxylicious/blob/main/CHANGELOG.md#0170">Changelog</a> for a list of changes and
summary of Deprecations, Changes and Removals.</p>

<p>The main highlights of this release are:</p>

<h3 id="netty-improvements">Netty improvements</h3>

<ul>
  <li>Kroxylicious now depends on Netty 4.2, which brings upgrades such as making <code class="language-plaintext highlighter-rouge">io_uring</code> a first class transport and an improved memory allocator.</li>
  <li>We now offer some netty-specific metrics which give insights into memory allocation and executor task queues.</li>
  <li>Netty worker thread counts are now configurable.</li>
</ul>

<h3 id="filter-archetype">Filter Archetype</h3>

<p>Get started with developing your own Custom Filter for Kroxylicious! You can now create a sample Filter project using a maven archetype
to get up and running quickly. The generated project demonstrates how to structure a Filter project, and shows off our powerful integration 
testing tools which can simplify testing Filters against a real Apache Kafka cluster.</p>

<p>Run <code class="language-plaintext highlighter-rouge">mvn archetype:generate -DarchetypeGroupId=io.kroxylicious -DarchetypeArtifactId=kroxylicious-filter-archetype -DarchetypeVersion=0.17.0</code>
to get started!</p>

<p>For a more comprehensive guide to how to work with the Filter Archetype, see the <a href="https://kroxylicious.io/documentation/0.17.0/html/developer-quick-start/">Developer Quickstart</a>.</p>

<h3 id="kroxylicious-100-proposal">Kroxylicious 1.0.0 proposal</h3>

<p>We are currently discussing a proposal to <a href="https://github.com/kroxylicious/design/pull/82">release Kroxylicious 1.0.0</a>, and formalize our support policy for patch releases.
The aims are:</p>

<ul>
  <li>Move to 1.0.0 to signal production-readiness</li>
  <li>Stronger API/config stability guarantees until 2.0.0</li>
  <li>Clear support policy for patch releases</li>
</ul>

<p>This will provide more predictability for everyone using Kroxylicious and developing against its APIs. Your feedback is essential to get this right. Please
feel free to review and leave feedback on the proposal.</p>

<h3 id="feedback">Feedback</h3>

<p>Please let us know if you find the project interesting or helpful, and especially if
you have deployed it in production.
You can reach us through <a href="https://kroxylicious.slack.com">Slack</a>, <a href="https://github.com/kroxylicious/kroxylicious/issues">GitHub</a> or
even <a href="https://bsky.app/profile/kroxylicious.io">bsky</a>).</p>]]></content><author><name>Rob Young</name></author><category term="blog" /><category term="kroxylicious-proxy" /><category term="kroxylicious-operator" /><category term="releases" /><category term="releases" /><category term="kroxylicious-proxy" /><category term="kroxylicious-operator" /><summary type="html"><![CDATA[The Kroxylicious project is very pleased to announce the release of Kroxylicious 0.17.0. See the Changelog for a list of changes and summary of Deprecations, Changes and Removals.]]></summary></entry></feed>