<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Plugins on BareProxy.com</title>
    <link>https://bareproxy.com/tags/plugins/</link>
    <description>Recent content in Plugins on BareProxy.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 08 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bareproxy.com/tags/plugins/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>BareProxy 0.2.0 Runs WebAssembly Plugins Through the Proxy-Wasm Interface</title>
      <link>https://bareproxy.com/bareproxy-0.2.0-runs-webassembly-plugins-through-the-proxy-wasm-interface/</link>
      <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://bareproxy.com/bareproxy-0.2.0-runs-webassembly-plugins-through-the-proxy-wasm-interface/</guid>
      <description>&lt;p&gt;BareProxy 0.2.0 is out, and it can run plugins. A plugin is a WebAssembly module, written to Proxy-Wasm, the plugin interface Envoy and Istio use, and run on wazero, a WebAssembly runtime in pure Go. So BareProxy is still one static binary on Linux, macOS and Windows. No plugin ships in this release. This one is the socket they plug into.&lt;/p&gt;&#xA;&lt;p&gt;In a config it looks like this:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;plugin crawlers /etc/bareproxy/plugins/crawlers.wasm&#xA;  config /etc/bareproxy/plugins/crawlers.json&#xA;  on-error open&#xA;&#xA;site example.com&#xA;  use crawlers&#xA;  route /* -&amp;gt; files /var/www/example/public&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;what-a-plugin-can-do&#34;&gt;What a Plugin Can Do&lt;/h2&gt;&#xA;&lt;p&gt;A site&amp;rsquo;s plugins see each request after the site is found and before routing. A plugin can change the headers, the method or the path, and then the core routes what it gets. It can answer the request itself. On the way back it sees the response headers and, if it asks, the whole body. Once the response is sent, it gets a last look for its own logging.&lt;/p&gt;</description>
    </item>
    <item>
      <title>BareProxy Plugins Go WebAssembly, Starting With RenderCache and AI Crawler Control</title>
      <link>https://bareproxy.com/bareproxy-plugins-go-webassembly-starting-with-rendercache-and-ai-crawler-control/</link>
      <pubDate>Thu, 08 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://bareproxy.com/bareproxy-plugins-go-webassembly-starting-with-rendercache-and-ai-crawler-control/</guid>
      <description>&lt;p&gt;BareProxy&amp;rsquo;s core stays bare. Everything else comes as plugins, and a plugin is now a WebAssembly module that BareProxy loads at run time. That replaces the earlier plan of modules compiled into the binary.&lt;/p&gt;&#xA;&lt;p&gt;Three things change for anyone running it. A plugin is a &lt;code&gt;.wasm&lt;/code&gt; file named in the config, so adding or upgrading one is a config change: &lt;code&gt;plan&lt;/code&gt; shows it, &lt;code&gt;apply&lt;/code&gt; makes it live, &lt;code&gt;rollback&lt;/code&gt; takes it back. No rebuild, no restart. A plugin runs in a sandbox, with no files, sockets or processes unless the config grants them, so a broken one can&amp;rsquo;t take the server down. And a plugin can be written in anything that compiles to WebAssembly. Rust, Go, C++, Zig, AssemblyScript.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
