This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/stormcrawler-site.git
The following commit(s) were added to refs/heads/asf-staging by this push:
new 3bcbcce publishing 2026-08-24T09:29:17+00:00
3bcbcce is described below
commit 3bcbccec7c225b566a8f51f776db38076f4a5367
Author: GitHub Actions Bot <>
AuthorDate: Mon Aug 24 09:29:17 2026 +0000
publishing 2026-08-24T09:29:17+00:00
---
feed.xml | 4 +-
security/index.html | 52 ++++++++++++++++++++
team/index.html | 136 ++++++++++++++++++++++++++--------------------------
3 files changed, 122 insertions(+), 70 deletions(-)
diff --git a/feed.xml b/feed.xml
index 665b79c..61c4318 100644
--- a/feed.xml
+++ b/feed.xml
@@ -6,8 +6,8 @@
</description>
<link>https://stormcrawler.apache.org/</link>
<atom:link href="https://stormcrawler.apache.org/feed.xml" rel="self"
type="application/rss+xml"/>
- <pubDate>Tue, 18 Aug 2026 20:25:51 +0000</pubDate>
- <lastBuildDate>Tue, 18 Aug 2026 20:25:51 +0000</lastBuildDate>
+ <pubDate>Mon, 24 Aug 2026 09:29:01 +0000</pubDate>
+ <lastBuildDate>Mon, 24 Aug 2026 09:29:01 +0000</lastBuildDate>
<generator>Jekyll v3.9.5</generator>
</channel>
diff --git a/security/index.html b/security/index.html
index 7056398..474e16d 100644
--- a/security/index.html
+++ b/security/index.html
@@ -122,6 +122,12 @@
<h2>Threat Model and Security Considerations</h2>
<p>StormCrawler is designed to operate in trusted environments as part of a
distributed <a href="https://storm.apache.org/" target="_blank"
rel="noopener">Apache Storm®</a> cluster.</p>
+ <h3>Crawled Content Is Untrusted by Design</h3>
+ <p>StormCrawler is a library for broad web crawling. It fetches URLs it
was told to fetch, including URLs discovered in previously fetched pages, and
it parses the bytes that come back. Both the URLs and the bytes are chosen by
the operators of the sites being crawled, which means attacker-controlled input
is not an edge case for a crawler: it is the normal operating condition. Every
component that handles a response body, a response header, a redirect target or
an extracted outlink is [...]
+ <p>It follows that consequences of the crawler crawling what it was
configured to crawl are not, in themselves, vulnerabilities. If a topology is
pointed at a host, fetches a resource from it and stores the result, that is
the software working as intended, regardless of what the remote host chose to
serve. What the project does treat as a security problem is content crossing a
boundary it was never meant to cross: crawled bytes influencing the crawler's
own configuration or control data [...]
+ <p>This is the frame for the rest of this section. The controls
described below exist so that operators can define where that boundary lies for
their deployment. Choosing not to configure them widens the boundary rather
than removing it.</p>
+ <p>Malformed or hostile responses that make a crawl slow, stall a
worker or exhaust its memory are bugs the project fixes. Such effects are
confined to the crawl the operator chose to run, and the project treats them as
robustness rather than as a compromise of the deployment.</p>
+
<h3>Trusted Configuration</h3>
<p>The configuration file used by StormCrawler is loaded during topology
submission and is treated as a trusted source. If an attacker is able to modify
this file, they would already have full access to the system. Securing the
configuration file and the environment in which topologies are submitted is
essential.</p>
@@ -133,6 +139,52 @@
<li>Avoid deploying StormCrawler in multi-tenant environments without strong
isolation guarantees</li>
</ul>
+ <h3>Operator Responsibilities</h3>
+ <p>StormCrawler is a library, not a finished crawler. Several controls
that determine what a crawl is allowed to reach ship disabled or permissive,
because the library cannot know the scope of the crawl a given operator intends
to run. Configuring them is the operator's responsibility.</p>
+
+ <h4>URL Filtering</h4>
+ <p>The library ships no URL filters at all:
<code>urlfilters.config.file</code> is present but commented out in
<code>crawler-default.yaml</code>, so a topology built directly on the library
will follow every outlink it discovers, unbounded, unless the operator supplies
a filter configuration. Projects generated from the StormCrawler Maven
archetypes do not have this problem: they set
<code>urlfilters.config.file</code> and ship a
<code>default-regex-filters.txt</code> as a starting point.</p>
+ <p>A topology running with no URL filtering at all is not a supported
configuration. Operators should define the intended crawl scope explicitly, in
terms of hosts, domains and URL patterns, and should treat the filter
configuration as a security control rather than a tuning parameter.</p>
+
+ <h4>Protocol Schemes</h4>
+ <p>The <code>protocols</code> key currently ships as
<code>"http,https,file"</code>, which registers the <code>file</code> protocol
implementation alongside the HTTP ones. Because outlinks are extracted from
crawled pages, an enabled <code>file</code> scheme gives crawled content a path
to the local filesystem of the worker unless URL filtering prevents it. This is
the combination that matters: the file scheme and the absence of URL filters
together, not either one alone.</p>
+ <p>Non-web schemes should be enabled deliberately, for deployments that
actually crawl local files, and should be paired with URL filters that
constrain which paths may be reached. Operators who do not crawl local content
should reduce <code>protocols</code> to <code>"http,https"</code>.</p>
+
+ <h4>Egress Restriction</h4>
+ <p>Regular-expression URL filters operate on the URL string and cannot
know what a hostname resolves to. A hostname under the control of a crawled
site can resolve to a loopback, link-local or private address, which no pattern
on the URL can detect. <code>http.filter.ipaddress.include</code> and
<code>http.filter.ipaddress.exclude</code> address this: they are applied after
DNS resolution, at connection time, and are the only control in the library
that can act on the resolved address. [...]
+ <p>Operators crawling the public web should set an exclude rule
covering loopback and site-local ranges at minimum; operators crawling a known
internal estate should prefer an explicit include rule. Note that this
filtering is implemented in the OkHttp protocol only. Topologies using other
protocol implementations, including the browser-based ones, need to obtain the
same restriction from the network layer around the workers.</p>
+
+ <h4>Resource Limits</h4>
+ <p><code>http.content.limit</code> defaults to <code>-1</code>, meaning
no limit: the size of a fetched document is decided by the remote server. The
archetype configurations set it to <code>65536</code>. Since response bodies
are attacker-chosen, an unbounded limit lets a crawled host decide how much
memory a worker allocates for a single fetch.</p>
+ <p>Operators should set a finite <code>http.content.limit</code>
appropriate to the content they intend to index. The related
<code>http.robots.content.limit</code> defaults to the same value and deserves
the same treatment.</p>
+
+ <h3>Transport and Credentials</h3>
+ <p><code>http.trust.everything</code> currently defaults to
<code>true</code>. With that setting, the OkHttp protocol accepts any server
certificate and performs no hostname verification. The rationale is that broad
crawling encounters expired, self-signed and otherwise misconfigured
certificates constantly, that a crawl aborting on them would be of limited use,
and that the fetched bytes are treated as hostile in any case, so certificate
validity adds little to how the response is hand [...]
+ <p>That rationale covers the content of an ordinary anonymous crawl. It
does not cover anything the crawler sends. With certificate and hostname
verification disabled, the crawler cannot tell which host it is actually
talking to, so any credential, custom header or replayed cookie attached to a
request crosses a channel whose far end was never authenticated. Operators who
crawl anything authenticated must weigh this, and should set
<code>http.trust.everything</code> to <code>false</code [...]
+ <p>Credentials configured through <code>http.basicauth.user</code> and
<code>http.basicauth.password</code> are turned into a fixed
<code>Authorization</code> header that is attached to every request the
protocol instance makes, with no host scoping. If such a topology follows an
outlink to a third-party host, the credentials go with it. Operators crawling
authenticated sites should scope credentials by origin themselves, by running a
separate topology per origin with URL filters confin [...]
+ <p>Cookie replay is a related risk. <code>http.use.cookies</code> is
<code>false</code> by default, and enabling it causes cookies stored from a
response to be sent with requests for links found in that response. Operators
enabling it on an authenticated crawl should apply the same per-origin
separation as for Basic authentication.</p>
+ <p>Cookie scoping as implemented is not a security boundary. Operators
should confine authenticated crawls by topology rather than relying on which
cookies are sent where.</p>
+
+ <h3>Advisories and Hardening</h3>
+ <p>StormCrawler follows the <a
href="https://www.apache.org/security/">ASF Security Team</a>'s policy on when
an advisory is issued.</p>
+ <ul>
+ <li>We issue an advisory for a vulnerability in a released
artifact. This includes low-severity issues, issues that affect only
non-default but valid configurations, and issues the project found itself
rather than receiving from an external reporter.</li>
+ <li>We treat improvements to default configuration values and
added safeguards as security hardening. These ship in normal releases,
described in the release notes, without an advisory.</li>
+ <li>Vulnerabilities in dependencies follow the ASF's dependency
guidance. We update affected dependencies in normal releases and do not usually
issue our own advisory for them.</li>
+ </ul>
+ <p>As the ASF policy notes, what counts as a vulnerability depends in
part on what a project states as expected behaviour, which is why this page
describes the crawler's threat model rather than only its reporting process.</p>
+
+ <h3>Summary</h3>
+ <p>StormCrawler's security model assumes a trusted deployment
environment. Users should:</p>
+ <ul>
+ <li>Secure configuration files and deployment
infrastructure</li>
+ <li>Restrict Apache Storm® cluster access</li>
+ <li>Follow best practices for secret and privilege
management</li>
+ <li>Define the crawl scope explicitly with URL filters, and
enable only the protocol schemes the crawl needs</li>
+ <li>Restrict egress by resolved IP address and set a finite
content limit</li>
+ <li>Scope any credentials used for authenticated crawls to a
topology confined to their origin</li>
+ </ul>
+
<h2>Asking Questions About Known Security Problems</h2>
<p>Questions about whether a vulnerability applies to your application,
further information on a published vulnerability, or availability of patches
should be addressed to the <a
href="https://lists.apache.org/[email protected]"
target="_blank" rel="noopener">dev mailing list</a> (<a
href="mailto:[email protected]">subscribe</a> · <a
href="mailto:[email protected]">unsubscribe</a>).</p>
diff --git a/team/index.html b/team/index.html
index 15ce45b..ff5b118 100644
--- a/team/index.html
+++ b/team/index.html
@@ -103,7 +103,7 @@
<a class="contributor-card"
href="https://github.com/tballison" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">TA</span>
+ <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">TA</span>
<span class="contributor-name">Tim Allison</span>
<span class="contributor-role">C-P</span>
@@ -121,7 +121,7 @@
<a class="contributor-card"
href="https://github.com/pjfanning" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">PF</span>
+ <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">PF</span>
<span class="contributor-name">PJ Fanning</span>
<span class="contributor-role">C</span>
@@ -130,7 +130,7 @@
<span class="contributor-card">
- <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">DF</span>
+ <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">DF</span>
<span class="contributor-name">Dave Fisher</span>
<span class="contributor-role">C</span>
@@ -148,7 +148,7 @@
<a class="contributor-card"
href="https://github.com/sebastian-nagel" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">SN</span>
+ <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">SN</span>
<span class="contributor-name">Sebastian Nagel</span>
<span class="contributor-role">C-P</span>
@@ -157,7 +157,7 @@
<a class="contributor-card"
href="https://github.com/jnioche" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">JN</span>
+ <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">JN</span>
<span class="contributor-name">Julien Nioche</span>
<span class="contributor-role">C-P</span>
@@ -166,7 +166,7 @@
<a class="contributor-card"
href="https://github.com/dpol1" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">DP</span>
+ <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">DP</span>
<span class="contributor-name">Davide Polato</span>
<span class="contributor-role">C</span>
@@ -184,7 +184,7 @@
<a class="contributor-card"
href="https://github.com/sigee" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">DS</span>
+ <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">DS</span>
<span class="contributor-name">Dávid Szigecsán</span>
<span class="contributor-role">C-P</span>
@@ -193,7 +193,7 @@
<a class="contributor-card"
href="https://github.com/mvolikas" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">MV</span>
+ <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">MV</span>
<span class="contributor-name">Markos Volikas</span>
<span class="contributor-role">C-P</span>
@@ -202,7 +202,7 @@
<a class="contributor-card" href="https://github.com/rzo1"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">RZ</span>
+ <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">RZ</span>
<span class="contributor-name">Richard Zowalla</span>
<span class="contributor-role">C-P</span>
<span class="contributor-role
contributor-role-chair">Chair</span>
@@ -229,192 +229,192 @@
<div class="contributor-grid">
<a class="contributor-card" href="https://github.com/jorgelbg"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">JB</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">JB</span>
<span class="contributor-name">Jorge Luis Betancourt</span>
</a>
<a class="contributor-card"
href="https://github.com/mattburns" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">MB</span>
+ <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">MB</span>
<span class="contributor-name">Matt Burns</span>
</a>
<a class="contributor-card"
href="https://github.com/FelixEngl" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">FE</span>
+ <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">FE</span>
<span class="contributor-name">Felix Engl</span>
</a>
<a class="contributor-card" href="https://github.com/m4t1eu"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">M4</span>
+ <span class="contributor-badge"
style="background:#16222a;" aria-hidden="true">M4</span>
<span class="contributor-name">M4t1eu</span>
</a>
<a class="contributor-card" href="https://github.com/eshioji"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">ES</span>
+ <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">ES</span>
<span class="contributor-name">Enno Shioji</span>
</a>
<a class="contributor-card"
href="https://github.com/hatemalimam" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">HA</span>
+ <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">HA</span>
<span class="contributor-name">Hatem Alimam</span>
</a>
<a class="contributor-card"
href="https://github.com/jakekdodd" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#283c86;" aria-hidden="true">JD</span>
+ <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">JD</span>
<span class="contributor-name">Jake K. Dodd</span>
</a>
<a class="contributor-card"
href="https://github.com/jcruzmartini" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">JM</span>
+ <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">JM</span>
<span class="contributor-name">Juan Cruz Martini</span>
</a>
<a class="contributor-card"
href="https://github.com/juli-alvarez" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">JA</span>
+ <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">JA</span>
<span class="contributor-name">Julian Alvarez</span>
</a>
<a class="contributor-card" href="https://github.com/ndtreviv"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">NT</span>
+ <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">NT</span>
<span class="contributor-name">Nathan Trevivian</span>
</a>
<a class="contributor-card" href="https://github.com/AymanDF"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">AG</span>
+ <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">AG</span>
<span class="contributor-name">Ayman Abdel Ghany</span>
</a>
<a class="contributor-card"
href="https://github.com/Brijeshthummar02" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">BT</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">BT</span>
<span class="contributor-name">Brijesh Thummar</span>
</a>
<a class="contributor-card"
href="https://github.com/joshfischer1108" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">JF</span>
+ <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">JF</span>
<span class="contributor-name">Josh Fischer</span>
</a>
<a class="contributor-card"
href="https://github.com/sam-ulrich1" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">SU</span>
+ <span class="contributor-badge"
style="background:#283c86;" aria-hidden="true">SU</span>
<span class="contributor-name">Sam Ulrich</span>
</a>
<a class="contributor-card" href="https://github.com/syefimov"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">SY</span>
+ <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">SY</span>
<span class="contributor-name">syefimov</span>
</a>
<a class="contributor-card"
href="https://github.com/TamimEhsan" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#283c86;" aria-hidden="true">ME</span>
+ <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">ME</span>
<span class="contributor-name">Mohammad Tamimul
Ehsan</span>
</a>
<a class="contributor-card" href="https://github.com/allfro"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">AL</span>
+ <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">AL</span>
<span class="contributor-name">allfro</span>
</a>
<a class="contributor-card"
href="https://github.com/Ayman-Abdelghany" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">AA</span>
+ <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">AA</span>
<span class="contributor-name">Ayman Abdelghany</span>
</a>
<a class="contributor-card"
href="https://github.com/chhsiao90" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">CH</span>
+ <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">CH</span>
<span class="contributor-name">Chun-Han, Hsiao</span>
</a>
<a class="contributor-card" href="https://github.com/klockla"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">LK</span>
+ <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">LK</span>
<span class="contributor-name">Laurent Klock</span>
</a>
<a class="contributor-card"
href="https://github.com/kunalpal97" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">KP</span>
+ <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">KP</span>
<span class="contributor-name">Kunal Pal</span>
</a>
<a class="contributor-card" href="https://github.com/wombat"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">DS</span>
+ <span class="contributor-badge"
style="background:#283c86;" aria-hidden="true">DS</span>
<span class="contributor-name">Daniel Sachse</span>
</a>
<a class="contributor-card" href="https://github.com/anuq"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">AN</span>
+ <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">AN</span>
<span class="contributor-name">Anup</span>
</a>
<a class="contributor-card"
href="https://github.com/asf-gitbox-commits" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">TF</span>
+ <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">TF</span>
<span class="contributor-name">The Apache Software
Foundation</span>
</a>
<a class="contributor-card"
href="https://github.com/AsifQureshi04" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">AS</span>
+ <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">AS</span>
<span class="contributor-name">AsifQureshi04</span>
</a>
<a class="contributor-card" href="https://github.com/cruftex"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">JW</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">JW</span>
<span class="contributor-name">Jens Wilke</span>
</a>
<a class="contributor-card" href="https://github.com/dremeika"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">DR</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">DR</span>
<span class="contributor-name">Donatas Remeika</span>
</a>
<a class="contributor-card"
href="https://github.com/evanhalley" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">EH</span>
+ <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">EH</span>
<span class="contributor-name">Evan Halley</span>
</a>
<a class="contributor-card"
href="https://github.com/Evergreenies" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">SS</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">SS</span>
<span class="contributor-name">Suyog Shimpi</span>
</a>
<a class="contributor-card"
href="https://github.com/HrishikeshUchake" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">HU</span>
+ <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">HU</span>
<span class="contributor-name">Hrishikesh Uchake</span>
</a>
<a class="contributor-card" href="https://github.com/HyemIin"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">HA</span>
+ <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">HA</span>
<span class="contributor-name">Harry</span>
</a>
<a class="contributor-card" href="https://github.com/isspek"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">IS</span>
+ <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">IS</span>
<span class="contributor-name">isspek</span>
</a>
<a class="contributor-card"
href="https://github.com/JacobsonMT" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">MJ</span>
+ <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">MJ</span>
<span class="contributor-name">Matthew Jacobson</span>
</a>
<a class="contributor-card"
href="https://github.com/JLLeitschuh" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">JL</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">JL</span>
<span class="contributor-name">Jonathan Leitschuh</span>
</a>
<a class="contributor-card"
href="https://github.com/king-of-the-ring" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">KI</span>
+ <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">KI</span>
<span class="contributor-name">king-of-the-ring</span>
</a>
<a class="contributor-card"
href="https://github.com/leedongkyu0407" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#283c86;" aria-hidden="true">DL</span>
+ <span class="contributor-badge"
style="background:#16222a;" aria-hidden="true">DL</span>
<span class="contributor-name">DONGGYU LEE</span>
</a>
<a class="contributor-card"
href="https://github.com/lfoppiano" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">LU</span>
+ <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">LU</span>
<span class="contributor-name">Luca</span>
</a>
<a class="contributor-card"
href="https://github.com/matiascrespof" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">MC</span>
+ <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">MC</span>
<span class="contributor-name">Matias Crespo</span>
</a>
@@ -424,97 +424,97 @@
</a>
<a class="contributor-card" href="https://github.com/mstrewe"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">MP</span>
+ <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">MP</span>
<span class="contributor-name">Maik Piel</span>
</a>
<a class="contributor-card" href="https://github.com/nfalaki"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">NF</span>
+ <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">NF</span>
<span class="contributor-name">Nima Falaki</span>
</a>
<a class="contributor-card" href="https://github.com/niallkp"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">NP</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">NP</span>
<span class="contributor-name">Niall Pemberton</span>
</a>
<a class="contributor-card"
href="https://github.com/nicoscandolo" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">NS</span>
+ <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">NS</span>
<span class="contributor-name">Nico Scandolo</span>
</a>
<a class="contributor-card" href="https://github.com/potiuk"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#16222a;" aria-hidden="true">JP</span>
+ <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">JP</span>
<span class="contributor-name">Jarek Potiuk</span>
</a>
<a class="contributor-card" href="https://github.com/preko-p"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#16222a;" aria-hidden="true">PR</span>
+ <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">PR</span>
<span class="contributor-name">preko-p</span>
</a>
<a class="contributor-card"
href="https://github.com/prokopidis" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">PP</span>
+ <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">PP</span>
<span class="contributor-name">Prokopis Prokopidis</span>
</a>
<a class="contributor-card" href="https://github.com/psxjoy"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#16222a;" aria-hidden="true">SP</span>
+ <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">SP</span>
<span class="contributor-name">Shuxin Pan</span>
</a>
<a class="contributor-card" href="https://github.com/pxtxs"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">PX</span>
+ <span class="contributor-badge"
style="background:#11324d;" aria-hidden="true">PX</span>
<span class="contributor-name">pxtxs</span>
</a>
<a class="contributor-card"
href="https://github.com/quangdutran" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">TD</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">TD</span>
<span class="contributor-name">Trần Quang Dự</span>
</a>
<a class="contributor-card" href="https://github.com/rajucomp"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">RG</span>
+ <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">RG</span>
<span class="contributor-name">Raju Gupta</span>
</a>
<a class="contributor-card" href="https://github.com/SSDWGG"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">RY</span>
+ <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">RY</span>
<span class="contributor-name">Ren yiwei</span>
</a>
<a class="contributor-card" href="https://github.com/stfnwp"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#3a1c71;" aria-hidden="true">ST</span>
+ <span class="contributor-badge"
style="background:#0f2027;" aria-hidden="true">ST</span>
<span class="contributor-name">stfnwp</span>
</a>
<a class="contributor-card"
href="https://github.com/SturmCamper" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#16222a;" aria-hidden="true">PA</span>
+ <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">PA</span>
<span class="contributor-name">Patrick</span>
</a>
<a class="contributor-card" href="https://github.com/SyBen"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#283c86;" aria-hidden="true">SB</span>
- <span class="contributor-name">Sylvain Benhamiche</span>
+ <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">SY</span>
+ <span class="contributor-name">SyBen</span>
</a>
<a class="contributor-card" href="https://github.com/vitos73"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#2c5364;" aria-hidden="true">VI</span>
+ <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">VI</span>
<span class="contributor-name">vitos73</span>
</a>
<a class="contributor-card" href="https://github.com/wowasa"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#5614b0;" aria-hidden="true">WO</span>
+ <span class="contributor-badge"
style="background:#6a3093;" aria-hidden="true">WO</span>
<span class="contributor-name">wowasa</span>
</a>
<a class="contributor-card" href="https://github.com/XciD"
rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#1d2671;" aria-hidden="true">XC</span>
+ <span class="contributor-badge"
style="background:#1f4068;" aria-hidden="true">XC</span>
<span class="contributor-name">XciD</span>
</a>
<a class="contributor-card"
href="https://github.com/Yurii201811" rel="noopener" target="_blank">
- <span class="contributor-badge"
style="background:#373b44;" aria-hidden="true">YU</span>
+ <span class="contributor-badge"
style="background:#3b1f5b;" aria-hidden="true">YU</span>
<span class="contributor-name">Yurii201811</span>
</a>
@@ -523,7 +523,7 @@
<p class="team-last-updated">
- Last updated: <time datetime="2026-08-18 20:26 UTC">2026-08-18
20:26 UTC</time>
+ Last updated: <time datetime="2026-08-24 09:29 UTC">2026-08-24
09:29 UTC</time>
</p>