This is an automated email from the ASF dual-hosted git repository.

piotr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git


The following commit(s) were added to refs/heads/master by this push:
     new 09f608fe chore(helm): add helm charts (#1911)
09f608fe is described below

commit 09f608fe961df351b24231fdc32605b2d8124bdd
Author: Ilya Suhodolets <[email protected]>
AuthorDate: Thu Jul 10 21:15:07 2025 +0300

    chore(helm): add helm charts (#1911)
---
 DISCLAIMER                                         |   5 -
 NOTICE                                             |  19 -
 PULL_REQUEST_TEMPLATE.md                           |  33 -
 LICENSE => helm/LICENSE                            |   3 +-
 helm/NOTICE                                        |  13 +
 helm/README.md                                     |   5 +
 helm/charts/iggy-server/.helmignore                |  23 +
 helm/charts/iggy-server/Chart.yaml                 |  30 +
 helm/charts/iggy-server/README.md                  |  53 ++
 helm/charts/iggy-server/templates/NOTES.txt        |  22 +
 helm/charts/iggy-server/templates/_helpers.tpl     |  67 ++
 helm/charts/iggy-server/templates/deployment.yaml  |  85 +++
 helm/charts/iggy-server/templates/hpa.yaml         |  45 ++
 helm/charts/iggy-server/templates/ingress.yaml     |  78 ++
 helm/charts/iggy-server/templates/service.yaml     |  40 +
 .../iggy-server/templates/serviceaccount.yaml      |  29 +
 .../iggy-server/templates/servicemonitor.yaml      |  40 +
 helm/charts/iggy-server/values.yaml                | 125 +++
 helm/charts/iggy-ui/.helmignore                    |  23 +
 helm/charts/iggy-ui/Chart.yaml                     |  30 +
 helm/charts/iggy-ui/README.md                      |  47 ++
 helm/charts/iggy-ui/templates/NOTES.txt            |  22 +
 helm/charts/iggy-ui/templates/_helpers.tpl         |  67 ++
 helm/charts/iggy-ui/templates/deployment.yaml      |  83 ++
 helm/charts/iggy-ui/templates/ingress.yaml         |  78 ++
 helm/charts/iggy-ui/templates/service.yaml         |  32 +
 helm/charts/iggy-ui/templates/serviceaccount.yaml  |  29 +
 helm/charts/iggy-ui/values.yaml                    | 105 +++
 scripts/DEPENDENCIES.md                            | 847 +++++++++++++++++++++
 29 files changed, 2019 insertions(+), 59 deletions(-)

diff --git a/DISCLAIMER b/DISCLAIMER
deleted file mode 100644
index aaa3f2df..00000000
--- a/DISCLAIMER
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Iggy (Incubating) is an effort undergoing incubation at the Apache 
Software Foundation (ASF), sponsored by the Apache Incubator PMC.
-
-Incubation is required of all newly accepted projects until a further review 
indicates that the infrastructure, communications, and decision making process 
have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the completeness or 
stability of the code, it does indicate that the project has yet to be fully 
endorsed by the ASF.
\ No newline at end of file
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index 2bd14a99..00000000
--- a/NOTICE
+++ /dev/null
@@ -1,19 +0,0 @@
-Apache Iggy (Incubating)
-Copyright 2025 The Apache Software Foundation
-
-This product includes software developed at 
-The Apache Software Foundation (http://www.apache.org/).
-
-================================================================
-
-This product includes various dependencies and code components that are 
subject to separate copyright notices and license terms. 
-Your use of these components is governed by their respective licenses. 
-For a complete list of dependencies, including their licenses and repository 
links, 
-please refer to the DEPENDENCIES file.
-
-================================================================
-
-The Iggy project code was originally created, designed, developed by Piotr 
Gankiewicz in April 2023. 
-It was released as an open-source project under MIT License, later converted 
to Apache 2.0 License,
-and donated by LaserData, Inc. to the Apache Software Foundation (ASF) in 
February 2025. 
-Copyright April 2023 - February 2025 Piotr Gankiewicz, LaserData, Inc.
\ No newline at end of file
diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index fe56a96b..00000000
--- a/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# **PR Submission Guidelines**
-
-**Please remove this entire section before submitting your PR.**
-**This section is only for your reference.**
-
-🙌 **Thank you for contributing to `iggy`!**
-
-To help us incorporate your changes efficiently, please adhere to the 
following guidelines:
-
-## General Coding Remarks
-
-- **Code Formatting**: Run `cargo fmt` to ensure your code adheres to the 
project's style.
-- **Code Linting**: Run `cargo clippy --all-targets --all-features -- -D 
warnings` to make sure your code is lint-free.
-- **Unit Testing**: Write or update unit tests to cover your changes.
-- **Integration Testing**: Write or update integration tests to cover your 
changes.
-- **Project Structure**: Follow the `iggy` project's structure and coding 
style.
-- **Build Integrity**: Ensure your code compiles and runs error-free.
-- **Check unused dependencies**: Run `cargo machete` to make sure no unused 
dependencies made their way into your changeset.
-- **Sort dependencies**: Run `cargo sort --workspace` so that the content of 
the toml files stay ordered.
-
-## Commit Message Rules
-
-- **Description**: Provide a concise description of the changes.
-- **Style**: Use an imperative style in the subject line (e.g., "Fix bug" 
rather than "Fixed bug" or "Fixes bug").
-- **Brevity**: Keep the subject line under 80 characters.
-- **Rationale**: Explain the 'why' and 'what' of your changes in the summary.
-- **Details**: Use the body to elaborate on the 'how' of your changes.
-- **Context**: Include 'before' and 'after' scenarios if applicable.
-- **References**: Link any relevant issues or PRs in the message body.
-
-**Remember:** Your contribution is essential to the success of `iggy`. Please 
ensure that your PR conforms to these guidelines for a swift and smooth 
integration process.
-
-Thank you!
diff --git a/LICENSE b/helm/LICENSE
similarity index 99%
rename from LICENSE
rename to helm/LICENSE
index 20a5aeae..9c8f3ea0 100644
--- a/LICENSE
+++ b/helm/LICENSE
@@ -198,5 +198,4 @@
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
-   limitations under the License.
-   
\ No newline at end of file
+   limitations under the License.
\ No newline at end of file
diff --git a/helm/NOTICE b/helm/NOTICE
new file mode 100644
index 00000000..63d71ff1
--- /dev/null
+++ b/helm/NOTICE
@@ -0,0 +1,13 @@
+Copyright 2023-2025 Piotr Gankiewicz, LaserData, Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file
diff --git a/helm/README.md b/helm/README.md
new file mode 100644
index 00000000..e5e62db1
--- /dev/null
+++ b/helm/README.md
@@ -0,0 +1,5 @@
+# The source code has been moved to [Apache 
Iggy](https://github.com/apache/iggy/)
+
+## iggy-helm
+
+Official Helm chart for Apache Iggy
diff --git a/helm/charts/iggy-server/.helmignore 
b/helm/charts/iggy-server/.helmignore
new file mode 100644
index 00000000..0e8a0eb3
--- /dev/null
+++ b/helm/charts/iggy-server/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/helm/charts/iggy-server/Chart.yaml 
b/helm/charts/iggy-server/Chart.yaml
new file mode 100644
index 00000000..4c7d946d
--- /dev/null
+++ b/helm/charts/iggy-server/Chart.yaml
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+apiVersion: v2
+name: iggy-server
+description: A Helm chart for Iggy server
+type: application
+version: 0.1.0
+appVersion: "0.4.300"
+sources:
+  - https://github.com/apache/iggy
+keywords:
+  - iggy
+  - messages
+  - streaming
diff --git a/helm/charts/iggy-server/README.md 
b/helm/charts/iggy-server/README.md
new file mode 100644
index 00000000..c812bb72
--- /dev/null
+++ b/helm/charts/iggy-server/README.md
@@ -0,0 +1,53 @@
+# iggy-server
+
+![Version: 
0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square)
 ![Type: 
application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
 ![AppVersion: 
1.16.0](https://img.shields.io/badge/AppVersion-1.16.0-informational?style=flat-square)
+
+A Helm chart for Kubernetes
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| additionalLabels | object | `{}` | Additional labels to add to all resources 
|
+| affinity | object | `{}` |  |
+| autoscaling.enabled | bool | `false` |  |
+| autoscaling.maxReplicas | int | `100` |  |
+| autoscaling.minReplicas | int | `1` |  |
+| autoscaling.targetCPUUtilizationPercentage | int | `80` |  |
+| fullnameOverride | string | `""` |  |
+| image.pullPolicy | string | `"IfNotPresent"` |  |
+| image.repository | string | `"nginx"` |  |
+| image.tag | string | `""` |  |
+| imagePullSecrets | list | `[]` |  |
+| ingress.annotations | object | `{}` |  |
+| ingress.className | string | `""` |  |
+| ingress.enabled | bool | `false` |  |
+| ingress.hosts[0].host | string | `"chart-example.local"` |  |
+| ingress.hosts[0].paths[0].path | string | `"/"` |  |
+| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` |  |
+| ingress.tls | list | `[]` |  |
+| nameOverride | string | `""` |  |
+| nodeSelector | object | `{}` |  |
+| podAnnotations | object | `{}` |  |
+| podSecurityContext | object | `{}` |  |
+| replicaCount | int | `1` |  |
+| resources | object | `{}` |  |
+| securityContext | object | `{}` |  |
+| server.ports.http | int | `3000` |  |
+| server.ports.quic | int | `8080` |  |
+| server.ports.tcp | int | `8090` |  |
+| service.type | string | `"ClusterIP"` |  |
+| serviceAccount.annotations | object | `{}` |  |
+| serviceAccount.create | bool | `true` |  |
+| serviceAccount.name | string | `""` |  |
+| serviceMonitor.additionalLabels | object | `{}` | Add custom labels to the 
ServiceMonitor resource |
+| serviceMonitor.enabled | bool | `true` | Enable this if you're using 
`"https://github.com/coreos/prometheus-operator"` |
+| serviceMonitor.honorLabels | bool | `false` |  |
+| serviceMonitor.interval | string | `"30s"` | Fallback to the prometheus 
default unless specified |
+| serviceMonitor.namespace | string | `""` | Namespace to deploy the 
ServiceMonitor |
+| serviceMonitor.path | string | `"/metrics"` | Path to scrape metrics |
+| serviceMonitor.scrapeTimeout | string | `"10s"` | Timeout for scrape metrics 
request |
+| tolerations | list | `[]` |  |
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs 
v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
diff --git a/helm/charts/iggy-server/templates/NOTES.txt 
b/helm/charts/iggy-server/templates/NOTES.txt
new file mode 100644
index 00000000..f4096db5
--- /dev/null
+++ b/helm/charts/iggy-server/templates/NOTES.txt
@@ -0,0 +1,22 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o 
jsonpath="{.spec.ports[0].nodePort}" services {{ include "iggy-server.fullname" 
. }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o 
jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get --namespace {{ 
.Release.Namespace }} svc -w {{ include "iggy-server.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ 
include "iggy-server.fullname" . }} --template "{{"{{ range (index 
.status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l 
"app.kubernetes.io/name={{ include "iggy-server.name" . 
}},app.kubernetes.io/instance={{ .Release.Name }}" -o 
jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} 
$POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 
8080:$CONTAINER_PORT
+{{- end }}
diff --git a/helm/charts/iggy-server/templates/_helpers.tpl 
b/helm/charts/iggy-server/templates/_helpers.tpl
new file mode 100644
index 00000000..6175cab6
--- /dev/null
+++ b/helm/charts/iggy-server/templates/_helpers.tpl
@@ -0,0 +1,67 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "iggy-server.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to 
this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "iggy-server.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "iggy-server.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | 
trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "iggy-server.labels" -}}
+helm.sh/chart: {{ include "iggy-server.chart" . }}
+{{ include "iggy-server.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/component: server
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+app.kubernetes.io/part-of: iggy-server
+{{- if .Values.additionalLabels }}
+{{ toYaml .Values.additionalLabels }}
+{{- end }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "iggy-server.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "iggy-server.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "iggy-server.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "iggy-server.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/helm/charts/iggy-server/templates/deployment.yaml 
b/helm/charts/iggy-server/templates/deployment.yaml
new file mode 100644
index 00000000..4a2ef626
--- /dev/null
+++ b/helm/charts/iggy-server/templates/deployment.yaml
@@ -0,0 +1,85 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: {{ include "iggy-server.fullname" . }}
+  labels:
+    {{- include "iggy-server.labels" . | nindent 4 }}
+spec:
+  {{- if not .Values.autoscaling.enabled }}
+  replicas: {{ .Values.replicaCount }}
+  {{- end }}
+  selector:
+    matchLabels:
+      {{- include "iggy-server.selectorLabels" . | nindent 6 }}
+  template:
+    metadata:
+      {{- with .Values.podAnnotations }}
+      annotations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      labels:
+        {{- include "iggy-server.labels" . | nindent 8 }}
+    spec:
+      {{- with .Values.imagePullSecrets }}
+      imagePullSecrets:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      serviceAccountName: {{ include "iggy-server.serviceAccountName" . }}
+      securityContext:
+        {{- toYaml .Values.podSecurityContext | nindent 8 }}
+      containers:
+        - name: {{ .Chart.Name }}
+          securityContext:
+            {{- toYaml .Values.securityContext | nindent 12 }}
+          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | 
default .Chart.AppVersion }}"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          ports:
+            - name: http
+              containerPort: {{ .Values.server.ports.http }}
+              protocol: TCP
+            - name: tcp
+              containerPort: {{ .Values.server.ports.tcp }}
+              protocol: TCP
+            - name: quic
+              containerPort: {{ .Values.server.ports.quic }}
+              protocol: TCP
+          livenessProbe:
+            httpGet:
+              path: /
+              port: http
+          readinessProbe:
+            httpGet:
+              path: /
+              port: http
+          resources:
+            {{- toYaml .Values.resources | nindent 12 }}
+      {{- with .Values.nodeSelector }}
+      nodeSelector:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.affinity }}
+      affinity:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.tolerations }}
+      tolerations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
diff --git a/helm/charts/iggy-server/templates/hpa.yaml 
b/helm/charts/iggy-server/templates/hpa.yaml
new file mode 100644
index 00000000..c802a571
--- /dev/null
+++ b/helm/charts/iggy-server/templates/hpa.yaml
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2beta1
+kind: HorizontalPodAutoscaler
+metadata:
+  name: {{ include "iggy-server.fullname" . }}
+  labels:
+    {{- include "iggy-server.labels" . | nindent 4 }}
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: {{ include "iggy-server.fullname" . }}
+  minReplicas: {{ .Values.autoscaling.minReplicas }}
+  maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+  metrics:
+    {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+    - type: Resource
+      resource:
+        name: cpu
+        targetAverageUtilization: {{ 
.Values.autoscaling.targetCPUUtilizationPercentage }}
+    {{- end }}
+    {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+    - type: Resource
+      resource:
+        name: memory
+        targetAverageUtilization: {{ 
.Values.autoscaling.targetMemoryUtilizationPercentage }}
+    {{- end }}
+{{- end }}
diff --git a/helm/charts/iggy-server/templates/ingress.yaml 
b/helm/charts/iggy-server/templates/ingress.yaml
new file mode 100644
index 00000000..6a1ffa99
--- /dev/null
+++ b/helm/charts/iggy-server/templates/ingress.yaml
@@ -0,0 +1,78 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+{{- if .Values.ingress.enabled -}}
+{{- $fullName := include "iggy-server.fullname" . -}}
+{{- $svcPort := .Values.service.port -}}
+{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" 
.Capabilities.KubeVersion.GitVersion)) }}
+  {{- if not (hasKey .Values.ingress.annotations 
"kubernetes.io/ingress.class") }}
+  {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" 
.Values.ingress.className}}
+  {{- end }}
+{{- end }}
+{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1
+{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1beta1
+{{- else -}}
+apiVersion: extensions/v1beta1
+{{- end }}
+kind: Ingress
+metadata:
+  name: {{ $fullName }}
+  labels:
+    {{- include "iggy-server.labels" . | nindent 4 }}
+  {{- with .Values.ingress.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+spec:
+  {{- if and .Values.ingress.className (semverCompare ">=1.18-0" 
.Capabilities.KubeVersion.GitVersion) }}
+  ingressClassName: {{ .Values.ingress.className }}
+  {{- end }}
+  {{- if .Values.ingress.tls }}
+  tls:
+    {{- range .Values.ingress.tls }}
+    - hosts:
+        {{- range .hosts }}
+        - {{ . | quote }}
+        {{- end }}
+      secretName: {{ .secretName }}
+    {{- end }}
+  {{- end }}
+  rules:
+    {{- range .Values.ingress.hosts }}
+    - host: {{ .host | quote }}
+      http:
+        paths:
+          {{- range .paths }}
+          - path: {{ .path }}
+            {{- if and .pathType (semverCompare ">=1.18-0" 
$.Capabilities.KubeVersion.GitVersion) }}
+            pathType: {{ .pathType }}
+            {{- end }}
+            backend:
+              {{- if semverCompare ">=1.19-0" 
$.Capabilities.KubeVersion.GitVersion }}
+              service:
+                name: {{ $fullName }}
+                port:
+                  number: {{ $svcPort }}
+              {{- else }}
+              serviceName: {{ $fullName }}
+              servicePort: {{ $svcPort }}
+              {{- end }}
+          {{- end }}
+    {{- end }}
+{{- end }}
diff --git a/helm/charts/iggy-server/templates/service.yaml 
b/helm/charts/iggy-server/templates/service.yaml
new file mode 100644
index 00000000..92ba3eee
--- /dev/null
+++ b/helm/charts/iggy-server/templates/service.yaml
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "iggy-server.fullname" . }}
+  labels:
+    {{- include "iggy-server.labels" . | nindent 4 }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    - name: http
+      port: {{ .Values.server.ports.http }}
+      targetPort: http
+      protocol: TCP
+    - name: quic
+      port: {{ .Values.server.ports.quic }}
+      targetPort: quic
+      protocol: TCP
+    - name: tcp
+      port: {{ .Values.server.ports.tcp }}
+      targetPort: tcp
+      protocol: TCP
+  selector:
+    {{- include "iggy-server.selectorLabels" . | nindent 4 }}
diff --git a/helm/charts/iggy-server/templates/serviceaccount.yaml 
b/helm/charts/iggy-server/templates/serviceaccount.yaml
new file mode 100644
index 00000000..8167299d
--- /dev/null
+++ b/helm/charts/iggy-server/templates/serviceaccount.yaml
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: {{ include "iggy-server.serviceAccountName" . }}
+  labels:
+    {{- include "iggy-server.labels" . | nindent 4 }}
+  {{- with .Values.serviceAccount.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+{{- end }}
diff --git a/helm/charts/iggy-server/templates/servicemonitor.yaml 
b/helm/charts/iggy-server/templates/servicemonitor.yaml
new file mode 100644
index 00000000..273a39d6
--- /dev/null
+++ b/helm/charts/iggy-server/templates/servicemonitor.yaml
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+{{- if .Values.serviceMonitor.enabled }}
+---
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  labels:
+    {{- include "iggy-server.labels" . | nindent 4 }}
+    {{- if .Values.serviceMonitor.additionalLabels }}
+    {{ toYaml .Values.serviceMonitor.additionalLabels }}
+    {{- end }}
+  name: {{ template "iggy-server.fullname" .  }}
+  namespace: {{ .Release.Namespace }}
+spec:
+  endpoints:
+  - path: {{ .Values.serviceMonitor.path }}
+    port: http
+  namespaceSelector:
+    matchNames:
+    - {{ .Release.Namespace }}
+  selector:
+    matchLabels:
+      {{- include "iggy-server.selectorLabels" . | nindent 6 }}
+{{- end }}
diff --git a/helm/charts/iggy-server/values.yaml 
b/helm/charts/iggy-server/values.yaml
new file mode 100644
index 00000000..78a16d72
--- /dev/null
+++ b/helm/charts/iggy-server/values.yaml
@@ -0,0 +1,125 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+# Default values for iggy-server.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+replicaCount: 1
+
+image:
+  repository: apache/iggy
+  pullPolicy: IfNotPresent
+  # Overrides the image tag whose default is the chart appVersion.
+  tag: ""
+
+imagePullSecrets: []
+nameOverride: ""
+fullnameOverride: ""
+
+# -- Additional labels to add to all resources
+additionalLabels: {}
+  # app: iggy
+
+serviceAccount:
+  # Specifies whether a service account should be created
+  create: true
+  # Annotations to add to the service account
+  annotations: {}
+  # The name of the service account to use.
+  # If not set and create is true, a name is generated using the fullname 
template
+  name: ""
+
+podAnnotations: {}
+
+podSecurityContext: {}
+  # fsGroup: 2000
+
+securityContext: {}
+  # capabilities:
+  #   drop:
+  #   - ALL
+  # readOnlyRootFilesystem: true
+  # runAsNonRoot: true
+  # runAsUser: 1000
+
+service:
+  type: ClusterIP
+
+ingress:
+  enabled: false
+  className: ""
+  annotations: {}
+    # kubernetes.io/ingress.class: nginx
+    # kubernetes.io/tls-acme: "true"
+  hosts:
+    - host: chart-example.local
+      paths:
+        - path: /
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as 
a conscious
+  # choice for the user. This also increases chances charts run on 
environments with little
+  # resources, such as Minikube. If you do want to specify resources, 
uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 
'resources:'.
+  # limits:
+  #   cpu: 100m
+  #   memory: 128Mi
+  # requests:
+  #   cpu: 100m
+  #   memory: 128Mi
+
+autoscaling:
+  enabled: false
+  minReplicas: 1
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+serviceMonitor:
+  # -- Enable this if you're using 
https://github.com/coreos/prometheus-operator
+  enabled: true
+  # -- Namespace to deploy the ServiceMonitor
+  namespace: ""
+  # -- Fallback to the prometheus default unless specified
+  interval: 30s
+  # -- Add custom labels to the ServiceMonitor resource
+  additionalLabels: {}
+  honorLabels: false
+  # -- Path to scrape metrics
+  path: /metrics
+  # -- Timeout for scrape metrics request
+  scrapeTimeout: 10s
+
+# Iggy configuration
+server:
+  ports:
+    http: 3000
+    quic: 8080
+    tcp: 8090
diff --git a/helm/charts/iggy-ui/.helmignore b/helm/charts/iggy-ui/.helmignore
new file mode 100644
index 00000000..0e8a0eb3
--- /dev/null
+++ b/helm/charts/iggy-ui/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/helm/charts/iggy-ui/Chart.yaml b/helm/charts/iggy-ui/Chart.yaml
new file mode 100644
index 00000000..0e43e117
--- /dev/null
+++ b/helm/charts/iggy-ui/Chart.yaml
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+apiVersion: v2
+name: iggy-ui
+description: A Helm chart for Iggy UI
+type: application
+version: 0.1.0
+appVersion: "latest"
+sources:
+  - https://github.com/apache/iggy
+keywords:
+  - iggy
+  - messages
+  - streaming
diff --git a/helm/charts/iggy-ui/README.md b/helm/charts/iggy-ui/README.md
new file mode 100644
index 00000000..31b680df
--- /dev/null
+++ b/helm/charts/iggy-ui/README.md
@@ -0,0 +1,47 @@
+# iggy-ui
+
+![Version: 
0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square)
 ![Type: 
application](https://img.shields.io/badge/Type-application-informational?style=flat-square)
 ![AppVersion: 
latest](https://img.shields.io/badge/AppVersion-latest-informational?style=flat-square)
+
+A Helm chart for Iggy UI
+
+## Source Code
+
+* <https://github.com/apache/iggy>
+
+## Values
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| additionalLabels | object | `{}` | Additional labels to add to all resources 
|
+| affinity | object | `{}` |  |
+| fullnameOverride | string | `""` |  |
+| image.pullPolicy | string | `"IfNotPresent"` |  |
+| image.repository | string | `"iggyrs/iggy-web-ui"` |  |
+| image.tag | string | `""` |  |
+| imagePullSecrets | list | `[]` |  |
+| ingress.annotations | object | `{}` |  |
+| ingress.className | string | `""` |  |
+| ingress.enabled | bool | `false` |  |
+| ingress.hosts[0].host | string | `"chart-example.local"` |  |
+| ingress.hosts[0].paths[0].path | string | `"/"` |  |
+| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` |  |
+| ingress.tls | list | `[]` |  |
+| nameOverride | string | `""` |  |
+| nodeSelector | object | `{}` |  |
+| podAnnotations | object | `{}` |  |
+| podSecurityContext | object | `{}` |  |
+| replicaCount | int | `1` |  |
+| resources | object | `{}` |  |
+| securityContext | object | `{}` |  |
+| server.endpoint | string | `"http://iggy-server:80"` |  |
+| service.port | int | `3050` |  |
+| service.type | string | `"ClusterIP"` |  |
+| serviceAccount.annotations | object | `{}` |  |
+| serviceAccount.create | bool | `true` |  |
+| serviceAccount.name | string | `""` |  |
+| tolerations | list | `[]` |  |
+| ui.extraEnvs | object | `{}` |  |
+| ui.ports.http | int | `3050` |  |
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs 
v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)
diff --git a/helm/charts/iggy-ui/templates/NOTES.txt 
b/helm/charts/iggy-ui/templates/NOTES.txt
new file mode 100644
index 00000000..40ba3de3
--- /dev/null
+++ b/helm/charts/iggy-ui/templates/NOTES.txt
@@ -0,0 +1,22 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o 
jsonpath="{.spec.ports[0].nodePort}" services {{ include "iggy-ui.fullname" . 
}})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o 
jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get --namespace {{ 
.Release.Namespace }} svc -w {{ include "iggy-ui.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ 
include "iggy-ui.fullname" . }} --template "{{"{{ range (index 
.status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l 
"app.kubernetes.io/name={{ include "iggy-ui.name" . 
}},app.kubernetes.io/instance={{ .Release.Name }}" -o 
jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} 
$POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 
8080:$CONTAINER_PORT
+{{- end }}
diff --git a/helm/charts/iggy-ui/templates/_helpers.tpl 
b/helm/charts/iggy-ui/templates/_helpers.tpl
new file mode 100644
index 00000000..fdba2850
--- /dev/null
+++ b/helm/charts/iggy-ui/templates/_helpers.tpl
@@ -0,0 +1,67 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "iggy-ui.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to 
this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "iggy-ui.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "iggy-ui.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | 
trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "iggy-ui.labels" -}}
+helm.sh/chart: {{ include "iggy-ui.chart" . }}
+{{ include "iggy-ui.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/component: server
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+app.kubernetes.io/part-of: iggy-ui
+{{- if .Values.additionalLabels }}
+{{ toYaml .Values.additionalLabels }}
+{{- end }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "iggy-ui.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "iggy-ui.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "iggy-ui.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "iggy-ui.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/helm/charts/iggy-ui/templates/deployment.yaml 
b/helm/charts/iggy-ui/templates/deployment.yaml
new file mode 100644
index 00000000..364dfd2b
--- /dev/null
+++ b/helm/charts/iggy-ui/templates/deployment.yaml
@@ -0,0 +1,83 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: {{ include "iggy-ui.fullname" . }}
+  labels:
+    {{- include "iggy-ui.labels" . | nindent 4 }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector:
+    matchLabels:
+      {{- include "iggy-ui.selectorLabels" . | nindent 6 }}
+  template:
+    metadata:
+      {{- with .Values.podAnnotations }}
+      annotations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      labels:
+        {{- include "iggy-ui.labels" . | nindent 8 }}
+    spec:
+      {{- with .Values.imagePullSecrets }}
+      imagePullSecrets:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      serviceAccountName: {{ include "iggy-ui.serviceAccountName" . }}
+      securityContext:
+        {{- toYaml .Values.podSecurityContext | nindent 8 }}
+      containers:
+        - name: {{ .Chart.Name }}
+          securityContext:
+            {{- toYaml .Values.securityContext | nindent 12 }}
+          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | 
default .Chart.AppVersion }}"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          ports:
+            - name: http
+              containerPort: {{ .Values.ui.ports.http }}
+              protocol: TCP
+          livenessProbe:
+            httpGet:
+              path: /
+              port: http
+          readinessProbe:
+            httpGet:
+              path: /
+              port: http
+          resources:
+            {{- toYaml .Values.resources | nindent 12 }}
+          env:
+          - name: PUBLIC_IGGY_API_URL
+            value: {{ .Values.server.endpoint }}
+          {{- with .Values.ui.extraEnvs }}
+          {{- . | toYaml | nindent 12 }}
+          {{- end }}
+      {{- with .Values.nodeSelector }}
+      nodeSelector:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.affinity }}
+      affinity:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.tolerations }}
+      tolerations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
diff --git a/helm/charts/iggy-ui/templates/ingress.yaml 
b/helm/charts/iggy-ui/templates/ingress.yaml
new file mode 100644
index 00000000..f9e08a19
--- /dev/null
+++ b/helm/charts/iggy-ui/templates/ingress.yaml
@@ -0,0 +1,78 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+{{- if .Values.ingress.enabled -}}
+{{- $fullName := include "iggy-ui.fullname" . -}}
+{{- $svcPort := .Values.service.port -}}
+{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" 
.Capabilities.KubeVersion.GitVersion)) }}
+  {{- if not (hasKey .Values.ingress.annotations 
"kubernetes.io/ingress.class") }}
+  {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" 
.Values.ingress.className}}
+  {{- end }}
+{{- end }}
+{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1
+{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1beta1
+{{- else -}}
+apiVersion: extensions/v1beta1
+{{- end }}
+kind: Ingress
+metadata:
+  name: {{ $fullName }}
+  labels:
+    {{- include "iggy-ui.labels" . | nindent 4 }}
+  {{- with .Values.ingress.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+spec:
+  {{- if and .Values.ingress.className (semverCompare ">=1.18-0" 
.Capabilities.KubeVersion.GitVersion) }}
+  ingressClassName: {{ .Values.ingress.className }}
+  {{- end }}
+  {{- if .Values.ingress.tls }}
+  tls:
+    {{- range .Values.ingress.tls }}
+    - hosts:
+        {{- range .hosts }}
+        - {{ . | quote }}
+        {{- end }}
+      secretName: {{ .secretName }}
+    {{- end }}
+  {{- end }}
+  rules:
+    {{- range .Values.ingress.hosts }}
+    - host: {{ .host | quote }}
+      http:
+        paths:
+          {{- range .paths }}
+          - path: {{ .path }}
+            {{- if and .pathType (semverCompare ">=1.18-0" 
$.Capabilities.KubeVersion.GitVersion) }}
+            pathType: {{ .pathType }}
+            {{- end }}
+            backend:
+              {{- if semverCompare ">=1.19-0" 
$.Capabilities.KubeVersion.GitVersion }}
+              service:
+                name: {{ $fullName }}
+                port:
+                  number: {{ $svcPort }}
+              {{- else }}
+              serviceName: {{ $fullName }}
+              servicePort: {{ $svcPort }}
+              {{- end }}
+          {{- end }}
+    {{- end }}
+{{- end }}
diff --git a/helm/charts/iggy-ui/templates/service.yaml 
b/helm/charts/iggy-ui/templates/service.yaml
new file mode 100644
index 00000000..5df8675d
--- /dev/null
+++ b/helm/charts/iggy-ui/templates/service.yaml
@@ -0,0 +1,32 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "iggy-ui.fullname" . }}
+  labels:
+    {{- include "iggy-ui.labels" . | nindent 4 }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    - name: http
+      port: {{ .Values.ui.ports.http }}
+      targetPort: http
+      protocol: TCP
+  selector:
+    {{- include "iggy-ui.selectorLabels" . | nindent 4 }}
diff --git a/helm/charts/iggy-ui/templates/serviceaccount.yaml 
b/helm/charts/iggy-ui/templates/serviceaccount.yaml
new file mode 100644
index 00000000..0a06e4b8
--- /dev/null
+++ b/helm/charts/iggy-ui/templates/serviceaccount.yaml
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: {{ include "iggy-ui.serviceAccountName" . }}
+  labels:
+    {{- include "iggy-ui.labels" . | nindent 4 }}
+  {{- with .Values.serviceAccount.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+{{- end }}
diff --git a/helm/charts/iggy-ui/values.yaml b/helm/charts/iggy-ui/values.yaml
new file mode 100644
index 00000000..72fc3d99
--- /dev/null
+++ b/helm/charts/iggy-ui/values.yaml
@@ -0,0 +1,105 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+---
+# Default values for iggy-ui.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+replicaCount: 1
+
+image:
+  repository: iggyrs/iggy-web-ui
+  pullPolicy: IfNotPresent
+  # Overrides the image tag whose default is the chart appVersion.
+  tag: ""
+
+imagePullSecrets: []
+nameOverride: ""
+fullnameOverride: ""
+
+# -- Additional labels to add to all resources
+additionalLabels: {}
+  # app: iggy
+
+serviceAccount:
+  # Specifies whether a service account should be created
+  create: true
+  # Annotations to add to the service account
+  annotations: {}
+  # The name of the service account to use.
+  # If not set and create is true, a name is generated using the fullname 
template
+  name: ""
+
+podAnnotations: {}
+
+podSecurityContext: {}
+  # fsGroup: 2000
+
+securityContext: {}
+  # capabilities:
+  #   drop:
+  #   - ALL
+  # readOnlyRootFilesystem: true
+  # runAsNonRoot: true
+  # runAsUser: 1000
+
+service:
+  type: ClusterIP
+  port: 3050
+
+ingress:
+  enabled: false
+  className: ""
+  annotations: {}
+    # kubernetes.io/ingress.class: nginx
+    # kubernetes.io/tls-acme: "true"
+  hosts:
+    - host: chart-example.local
+      paths:
+        - path: /
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as 
a conscious
+  # choice for the user. This also increases chances charts run on 
environments with little
+  # resources, such as Minikube. If you do want to specify resources, 
uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 
'resources:'.
+  # limits:
+  #   cpu: 100m
+  #   memory: 128Mi
+  # requests:
+  #   cpu: 100m
+  #   memory: 128Mi
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
+
+# Iggy configuration
+ui:
+  ports:
+    http: 3050
+  extraEnvs: {}
+server:
+  endpoint: http://iggy-server:80
diff --git a/scripts/DEPENDENCIES.md b/scripts/DEPENDENCIES.md
new file mode 100644
index 00000000..fcbf77b5
--- /dev/null
+++ b/scripts/DEPENDENCIES.md
@@ -0,0 +1,847 @@
+# Dependencies
+
+actix-codec: 0.5.2, "Apache-2.0 OR MIT",
+actix-cors: 0.7.1, "Apache-2.0 OR MIT",
+actix-files: 0.6.6, "Apache-2.0 OR MIT",
+actix-http: 3.11.0, "Apache-2.0 OR MIT",
+actix-macros: 0.2.4, "Apache-2.0 OR MIT",
+actix-router: 0.5.3, "Apache-2.0 OR MIT",
+actix-rt: 2.10.0, "Apache-2.0 OR MIT",
+actix-server: 2.6.0, "Apache-2.0 OR MIT",
+actix-service: 2.0.3, "Apache-2.0 OR MIT",
+actix-utils: 3.0.1, "Apache-2.0 OR MIT",
+actix-web: 4.11.0, "Apache-2.0 OR MIT",
+actix-web-codegen: 4.3.0, "Apache-2.0 OR MIT",
+addr2line: 0.24.2, "Apache-2.0 OR MIT",
+adler2: 2.0.1, "0BSD OR Apache-2.0 OR MIT",
+aead: 0.5.2, "Apache-2.0 OR MIT",
+aes: 0.8.4, "Apache-2.0 OR MIT",
+aes-gcm: 0.10.3, "Apache-2.0 OR MIT",
+ahash: 0.7.8, "Apache-2.0 OR MIT",
+ahash: 0.8.12, "Apache-2.0 OR MIT",
+aho-corasick: 1.1.3, "MIT OR Unlicense",
+alloc-no-stdlib: 2.0.4, "BSD-3-Clause",
+alloc-stdlib: 0.2.2, "BSD-3-Clause",
+allocator-api2: 0.2.21, "Apache-2.0 OR MIT",
+android-tzdata: 0.1.1, "Apache-2.0 OR MIT",
+android_system_properties: 0.1.5, "Apache-2.0 OR MIT",
+anstream: 0.6.19, "Apache-2.0 OR MIT",
+anstyle: 1.0.11, "Apache-2.0 OR MIT",
+anstyle-parse: 0.2.7, "Apache-2.0 OR MIT",
+anstyle-query: 1.1.3, "Apache-2.0 OR MIT",
+anstyle-wincon: 3.0.9, "Apache-2.0 OR MIT",
+anyhow: 1.0.98, "Apache-2.0 OR MIT",
+anymap2: 0.13.0, "Apache-2.0 OR MIT",
+arbitrary: 1.4.1, "Apache-2.0 OR MIT",
+arc-swap: 1.7.1, "Apache-2.0 OR MIT",
+arraydeque: 0.5.1, "Apache-2.0 OR MIT",
+arrayref: 0.3.9, "BSD-2-Clause",
+arrayvec: 0.7.6, "Apache-2.0 OR MIT",
+assert_cmd: 2.0.17, "Apache-2.0 OR MIT",
+async-broadcast: 0.7.2, "Apache-2.0 OR MIT",
+async-compression: 0.4.25, "Apache-2.0 OR MIT",
+async-dropper: 0.3.1, "MIT",
+async-dropper-derive: 0.3.1, "MIT",
+async-dropper-simple: 0.2.6, "MIT",
+async-lock: 3.4.0, "Apache-2.0 OR MIT",
+async-scoped: 0.9.0, "Apache-2.0 OR MIT",
+async-stream: 0.3.6, "MIT",
+async-stream-impl: 0.3.6, "MIT",
+async-trait: 0.1.88, "Apache-2.0 OR MIT",
+async_zip: 0.0.17, "MIT",
+atomic: 0.6.1, "Apache-2.0 OR MIT",
+atomic-polyfill: 1.0.3, "Apache-2.0 OR MIT",
+atomic-waker: 1.1.2, "Apache-2.0 OR MIT",
+attohttpc: 0.28.5, "MPL-2.0",
+autocfg: 1.5.0, "Apache-2.0 OR MIT",
+aws-creds: 0.38.0, "MIT",
+aws-lc-rs: 1.13.1, "ISC AND (Apache-2.0 OR ISC)",
+aws-lc-sys: 0.29.0, "ISC AND (Apache-2.0 OR ISC) AND OpenSSL",
+aws-region: 0.26.0, "MIT",
+axum: 0.7.9, "MIT",
+axum: 0.8.4, "MIT",
+axum-core: 0.4.5, "MIT",
+axum-core: 0.5.2, "MIT",
+axum-server: 0.7.2, "MIT",
+backtrace: 0.3.75, "Apache-2.0 OR MIT",
+base64: 0.21.7, "Apache-2.0 OR MIT",
+base64: 0.22.1, "Apache-2.0 OR MIT",
+bcrypt: 0.17.0, "MIT",
+bdd: 0.0.1, "Apache-2.0",
+beef: 0.5.2, "Apache-2.0 OR MIT",
+bench-dashboard-frontend: 0.4.1, "Apache-2.0",
+bench-dashboard-server: 0.4.0, "Apache-2.0",
+bench-dashboard-shared: 0.1.0, "Apache-2.0",
+bench-report: 0.2.2, "Apache-2.0",
+bench-runner: 0.1.0, "Apache-2.0",
+bincode: 1.3.3, "MIT",
+bincode: 2.0.1, "MIT",
+bincode_derive: 2.0.1, "MIT",
+bindgen: 0.69.5, "BSD-3-Clause",
+bitflags: 1.3.2, "Apache-2.0 OR MIT",
+bitflags: 2.9.1, "Apache-2.0 OR MIT",
+bitvec: 1.0.1, "MIT",
+blake3: 1.8.2, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR CC0-1.0",
+block-buffer: 0.10.4, "Apache-2.0 OR MIT",
+blowfish: 0.9.1, "Apache-2.0 OR MIT",
+bon: 3.6.4, "Apache-2.0 OR MIT",
+bon-macros: 3.6.4, "Apache-2.0 OR MIT",
+boolinator: 2.4.0, "Apache-2.0 OR MIT",
+borsh: 1.5.7, "Apache-2.0 OR MIT",
+borsh-derive: 1.5.7, "Apache-2.0",
+brotli: 8.0.1, "BSD-3-Clause AND MIT",
+brotli-decompressor: 5.0.0, "BSD-3-Clause OR MIT",
+bstr: 1.12.0, "Apache-2.0 OR MIT",
+bumpalo: 3.18.1, "Apache-2.0 OR MIT",
+byte-unit: 5.1.6, "MIT",
+bytecheck: 0.6.12, "MIT",
+bytecheck_derive: 0.6.12, "MIT",
+bytecount: 0.6.9, "Apache-2.0 OR MIT",
+bytemuck: 1.23.1, "Apache-2.0 OR MIT OR Zlib",
+byteorder: 1.5.0, "MIT OR Unlicense",
+bytes: 1.10.1, "MIT",
+bytestring: 1.4.0, "Apache-2.0 OR MIT",
+bzip2: 0.5.2, "Apache-2.0 OR MIT",
+bzip2: 0.6.0, "Apache-2.0 OR MIT",
+bzip2-sys: 0.1.13+1.0.8, "Apache-2.0 OR MIT",
+camino: 1.1.10, "Apache-2.0 OR MIT",
+cargo-platform: 0.1.9, "Apache-2.0 OR MIT",
+cargo_metadata: 0.19.2, "MIT",
+castaway: 0.2.3, "MIT",
+cc: 1.2.27, "Apache-2.0 OR MIT",
+cesu8: 1.1.0, "Apache-2.0 OR MIT",
+cexpr: 0.6.0, "Apache-2.0 OR MIT",
+cfg-if: 1.0.1, "Apache-2.0 OR MIT",
+cfg_aliases: 0.2.1, "MIT",
+charming: 0.6.0, "Apache-2.0 OR MIT",
+charming_macros: 0.1.0, "Apache-2.0 OR MIT",
+chrono: 0.4.41, "Apache-2.0 OR MIT",
+cipher: 0.4.4, "Apache-2.0 OR MIT",
+clang-sys: 1.8.1, "Apache-2.0",
+clap: 4.5.40, "Apache-2.0 OR MIT",
+clap_builder: 4.5.40, "Apache-2.0 OR MIT",
+clap_complete: 4.5.54, "Apache-2.0 OR MIT",
+clap_derive: 4.5.40, "Apache-2.0 OR MIT",
+clap_lex: 0.7.5, "Apache-2.0 OR MIT",
+cmake: 0.1.54, "Apache-2.0 OR MIT",
+cobs: 0.2.3, "Apache-2.0 OR MIT",
+colorchoice: 1.0.4, "Apache-2.0 OR MIT",
+colored: 3.0.0, "MPL-2.0",
+combine: 4.6.7, "MIT",
+comfy-table: 7.1.4, "MIT",
+compact_str: 0.7.1, "MIT",
+concurrent-queue: 2.5.0, "Apache-2.0 OR MIT",
+config: 0.15.11, "Apache-2.0 OR MIT",
+console: 0.15.11, "MIT",
+console-api: 0.8.1, "MIT",
+console-subscriber: 0.4.1, "MIT",
+console_error_panic_hook: 0.1.7, "Apache-2.0 OR MIT",
+const-random: 0.1.18, "Apache-2.0 OR MIT",
+const-random-macro: 0.1.16, "Apache-2.0 OR MIT",
+constant_time_eq: 0.3.1, "Apache-2.0 OR CC0-1.0 OR MIT-0",
+convert_case: 0.4.0, "MIT",
+convert_case: 0.6.0, "MIT",
+convert_case: 0.7.1, "MIT",
+cookie: 0.16.2, "Apache-2.0 OR MIT",
+core-foundation: 0.10.1, "Apache-2.0 OR MIT",
+core-foundation-sys: 0.8.7, "Apache-2.0 OR MIT",
+cpufeatures: 0.2.17, "Apache-2.0 OR MIT",
+crc32fast: 1.4.2, "Apache-2.0 OR MIT",
+critical-section: 1.2.0, "Apache-2.0 OR MIT",
+crossbeam: 0.8.4, "Apache-2.0 OR MIT",
+crossbeam-channel: 0.5.15, "Apache-2.0 OR MIT",
+crossbeam-deque: 0.8.6, "Apache-2.0 OR MIT",
+crossbeam-epoch: 0.9.18, "Apache-2.0 OR MIT",
+crossbeam-queue: 0.3.12, "Apache-2.0 OR MIT",
+crossbeam-utils: 0.8.21, "Apache-2.0 OR MIT",
+crossterm: 0.28.1, "MIT",
+crossterm_winapi: 0.9.1, "MIT",
+crunchy: 0.2.3, "MIT",
+crypto-common: 0.1.6, "Apache-2.0 OR MIT",
+ctor: 0.4.2, "Apache-2.0 OR MIT",
+ctor-proc-macro: 0.0.5, "Apache-2.0 OR MIT",
+ctr: 0.9.2, "Apache-2.0 OR MIT",
+cucumber: 0.21.1, "Apache-2.0 OR MIT",
+cucumber-codegen: 0.21.1, "Apache-2.0 OR MIT",
+cucumber-expressions: 0.3.0, "Apache-2.0 OR MIT",
+darling: 0.20.11, "MIT",
+darling_core: 0.20.11, "MIT",
+darling_macro: 0.20.11, "MIT",
+dashmap: 6.1.0, "MIT",
+dbus: 0.9.7, "Apache-2.0 OR MIT",
+dbus-secret-service: 4.0.3, "Apache-2.0 OR MIT",
+deflate64: 0.1.9, "MIT",
+deranged: 0.4.0, "Apache-2.0 OR MIT",
+derive-new: 0.7.0, "MIT",
+derive_arbitrary: 1.4.1, "Apache-2.0 OR MIT",
+derive_builder: 0.20.2, "Apache-2.0 OR MIT",
+derive_builder_core: 0.20.2, "Apache-2.0 OR MIT",
+derive_builder_macro: 0.20.2, "Apache-2.0 OR MIT",
+derive_more: 0.99.20, "MIT",
+derive_more: 2.0.1, "MIT",
+derive_more-impl: 2.0.1, "MIT",
+difflib: 0.4.0, "MIT",
+digest: 0.10.7, "Apache-2.0 OR MIT",
+dircpy: 0.3.19, "MIT",
+dirs: 6.0.0, "Apache-2.0 OR MIT",
+dirs-sys: 0.5.0, "Apache-2.0 OR MIT",
+displaydoc: 0.2.5, "Apache-2.0 OR MIT",
+dlopen2: 0.8.0, "Custom License File",
+dlopen2_derive: 0.4.1, "Custom License File",
+dlv-list: 0.5.2, "Apache-2.0 OR MIT",
+doc-comment: 0.3.3, "MIT",
+dotenvy: 0.15.7, "MIT",
+downcast: 0.11.0, "MIT",
+drain_filter_polyfill: 0.1.3, "Apache-2.0 OR MIT",
+dtoa: 1.0.10, "Apache-2.0 OR MIT",
+dtor: 0.0.6, "Apache-2.0 OR MIT",
+dtor-proc-macro: 0.0.5, "Apache-2.0 OR MIT",
+dunce: 1.0.5, "Apache-2.0 OR CC0-1.0 OR MIT-0",
+dyn-clone: 1.0.19, "Apache-2.0 OR MIT",
+either: 1.15.0, "Apache-2.0 OR MIT",
+embedded-io: 0.4.0, "Apache-2.0 OR MIT",
+embedded-io: 0.6.1, "Apache-2.0 OR MIT",
+encode_unicode: 1.0.0, "Apache-2.0 OR MIT",
+encoding_rs: 0.8.35, "(Apache-2.0 OR MIT) AND BSD-3-Clause",
+enum_dispatch: 0.3.13, "Apache-2.0 OR MIT",
+env_filter: 0.1.3, "Apache-2.0 OR MIT",
+env_logger: 0.11.8, "Apache-2.0 OR MIT",
+equivalent: 1.0.2, "Apache-2.0 OR MIT",
+err_trail: 0.8.5, "Apache-2.0",
+errno: 0.3.13, "Apache-2.0 OR MIT",
+error_set: 0.8.5, "Apache-2.0",
+error_set_impl: 0.8.5, "Apache-2.0",
+event-listener: 5.4.0, "Apache-2.0 OR MIT",
+event-listener-strategy: 0.5.4, "Apache-2.0 OR MIT",
+ext-trait: 1.0.1, "Apache-2.0 OR MIT OR Zlib",
+ext-trait-proc_macros: 1.0.1, "Apache-2.0 OR MIT OR Zlib",
+extension-traits: 1.0.1, "Apache-2.0 OR MIT OR Zlib",
+fast-async-mutex: 0.6.7, "Apache-2.0 OR MIT",
+fastbloom: 0.9.0, "Apache-2.0 OR MIT",
+fastrand: 2.3.0, "Apache-2.0 OR MIT",
+figlet-rs: 0.1.5, "Apache-2.0",
+figment: 0.10.19, "Apache-2.0 OR MIT",
+file-operation: 0.5.12, "MIT",
+filetime: 0.2.25, "Apache-2.0 OR MIT",
+flate2: 1.1.2, "Apache-2.0 OR MIT",
+float-cmp: 0.10.0, "MIT",
+flume: 0.11.1, "Apache-2.0 OR MIT",
+fnv: 1.0.7, "Apache-2.0 OR MIT",
+foldhash: 0.1.5, "Zlib",
+foreign-types: 0.3.2, "Apache-2.0 OR MIT",
+foreign-types-shared: 0.1.1, "Apache-2.0 OR MIT",
+form_urlencoded: 1.2.1, "Apache-2.0 OR MIT",
+fragile: 2.0.1, "Apache-2.0",
+fs-err: 3.1.1, "Apache-2.0 OR MIT",
+fs_extra: 1.3.0, "MIT",
+fsevent-sys: 4.1.0, "MIT",
+funty: 2.0.0, "MIT",
+futures: 0.3.31, "Apache-2.0 OR MIT",
+futures-channel: 0.3.31, "Apache-2.0 OR MIT",
+futures-core: 0.3.31, "Apache-2.0 OR MIT",
+futures-executor: 0.3.31, "Apache-2.0 OR MIT",
+futures-io: 0.3.31, "Apache-2.0 OR MIT",
+futures-lite: 2.6.0, "Apache-2.0 OR MIT",
+futures-macro: 0.3.31, "Apache-2.0 OR MIT",
+futures-sink: 0.3.31, "Apache-2.0 OR MIT",
+futures-task: 0.3.31, "Apache-2.0 OR MIT",
+futures-timer: 3.0.3, "Apache-2.0 OR MIT",
+futures-util: 0.3.31, "Apache-2.0 OR MIT",
+generator: 0.8.5, "Apache-2.0 OR MIT",
+generic-array: 0.14.7, "MIT",
+getrandom: 0.2.16, "Apache-2.0 OR MIT",
+getrandom: 0.3.3, "Apache-2.0 OR MIT",
+ghash: 0.5.1, "Apache-2.0 OR MIT",
+gherkin: 0.14.0, "Apache-2.0 OR MIT",
+gimli: 0.31.1, "Apache-2.0 OR MIT",
+git2: 0.20.2, "Apache-2.0 OR MIT",
+glob: 0.3.2, "Apache-2.0 OR MIT",
+globset: 0.4.16, "MIT OR Unlicense",
+globwalk: 0.9.1, "MIT",
+gloo: 0.8.1, "Apache-2.0 OR MIT",
+gloo: 0.10.0, "Apache-2.0 OR MIT",
+gloo: 0.11.0, "Apache-2.0 OR MIT",
+gloo-console: 0.2.3, "Apache-2.0 OR MIT",
+gloo-console: 0.3.0, "Apache-2.0 OR MIT",
+gloo-dialogs: 0.1.1, "Apache-2.0 OR MIT",
+gloo-dialogs: 0.2.0, "Apache-2.0 OR MIT",
+gloo-events: 0.1.2, "Apache-2.0 OR MIT",
+gloo-events: 0.2.0, "Apache-2.0 OR MIT",
+gloo-file: 0.2.3, "Apache-2.0 OR MIT",
+gloo-file: 0.3.0, "Apache-2.0 OR MIT",
+gloo-history: 0.1.5, "Apache-2.0 OR MIT",
+gloo-history: 0.2.2, "Apache-2.0 OR MIT",
+gloo-net: 0.3.1, "Apache-2.0 OR MIT",
+gloo-net: 0.4.0, "Apache-2.0 OR MIT",
+gloo-net: 0.5.0, "Apache-2.0 OR MIT",
+gloo-render: 0.1.1, "Apache-2.0 OR MIT",
+gloo-render: 0.2.0, "Apache-2.0 OR MIT",
+gloo-storage: 0.2.2, "Apache-2.0 OR MIT",
+gloo-storage: 0.3.0, "Apache-2.0 OR MIT",
+gloo-timers: 0.2.6, "Apache-2.0 OR MIT",
+gloo-timers: 0.3.0, "Apache-2.0 OR MIT",
+gloo-utils: 0.1.7, "Apache-2.0 OR MIT",
+gloo-utils: 0.2.0, "Apache-2.0 OR MIT",
+gloo-worker: 0.2.1, "Apache-2.0 OR MIT",
+gloo-worker: 0.4.0, "Apache-2.0 OR MIT",
+gloo-worker: 0.5.0, "Apache-2.0 OR MIT",
+gloo-worker-macros: 0.1.0, "Apache-2.0 OR MIT",
+governor: 0.10.0, "MIT",
+h2: 0.3.26, "MIT",
+h2: 0.4.10, "MIT",
+halfbrown: 0.3.0, "Apache-2.0 OR MIT",
+handlebars: 6.3.2, "MIT",
+hash32: 0.2.1, "Apache-2.0 OR MIT",
+hashbrown: 0.12.3, "Apache-2.0 OR MIT",
+hashbrown: 0.14.5, "Apache-2.0 OR MIT",
+hashbrown: 0.15.4, "Apache-2.0 OR MIT",
+hashlink: 0.10.0, "Apache-2.0 OR MIT",
+hdrhistogram: 7.5.4, "Apache-2.0 OR MIT",
+heapless: 0.7.17, "Apache-2.0 OR MIT",
+heck: 0.4.1, "Apache-2.0 OR MIT",
+heck: 0.5.0, "Apache-2.0 OR MIT",
+hermit-abi: 0.5.2, "Apache-2.0 OR MIT",
+hex: 0.4.3, "Apache-2.0 OR MIT",
+hmac: 0.12.1, "Apache-2.0 OR MIT",
+home: 0.5.11, "Apache-2.0 OR MIT",
+hostname: 0.4.1, "MIT",
+http: 0.2.12, "Apache-2.0 OR MIT",
+http: 1.3.1, "Apache-2.0 OR MIT",
+http-body: 1.0.1, "MIT",
+http-body-util: 0.1.3, "MIT",
+http-range: 0.1.5, "MIT",
+httparse: 1.10.1, "Apache-2.0 OR MIT",
+httpdate: 1.0.3, "Apache-2.0 OR MIT",
+human-repr: 1.1.0, "MIT",
+humantime: 2.2.0, "Apache-2.0 OR MIT",
+hyper: 1.6.0, "MIT",
+hyper-rustls: 0.27.7, "Apache-2.0 OR ISC OR MIT",
+hyper-timeout: 0.5.2, "Apache-2.0 OR MIT",
+hyper-util: 0.1.14, "MIT",
+iana-time-zone: 0.1.63, "Apache-2.0 OR MIT",
+iana-time-zone-haiku: 0.1.2, "Apache-2.0 OR MIT",
+icu_collections: 2.0.0, "Unicode-3.0",
+icu_locale_core: 2.0.0, "Unicode-3.0",
+icu_normalizer: 2.0.0, "Unicode-3.0",
+icu_normalizer_data: 2.0.0, "Unicode-3.0",
+icu_properties: 2.0.1, "Unicode-3.0",
+icu_properties_data: 2.0.1, "Unicode-3.0",
+icu_provider: 2.0.0, "Unicode-3.0",
+ident_case: 1.0.1, "Apache-2.0 OR MIT",
+idna: 1.0.3, "Apache-2.0 OR MIT",
+idna_adapter: 1.2.1, "Apache-2.0 OR MIT",
+iggy: 0.7.0, "Apache-2.0",
+iggy-bench: 0.2.4, "Apache-2.0",
+iggy-cli: 0.9.0, "Apache-2.0",
+iggy-connectors: 0.1.0, "Apache-2.0",
+iggy_binary_protocol: 0.7.0, "Apache-2.0",
+iggy_common: 0.7.0, "Apache-2.0",
+iggy_connector_quickwit_sink: 0.1.0, "Apache-2.0",
+iggy_connector_random_source: 0.1.0, "Apache-2.0",
+iggy_connector_sdk: 0.1.0, "Apache-2.0",
+iggy_connector_stdout_sink: 0.1.0, "Apache-2.0",
+iggy_examples: 0.0.5, "Apache-2.0",
+ignore: 0.4.23, "MIT OR Unlicense",
+impl-more: 0.1.9, "Apache-2.0 OR MIT",
+implicit-clone: 0.4.9, "Apache-2.0 OR MIT",
+implicit-clone-derive: 0.1.2, "Apache-2.0 OR MIT",
+indexmap: 1.9.3, "Apache-2.0 OR MIT",
+indexmap: 2.9.0, "Apache-2.0 OR MIT",
+indices: 0.3.6, "Apache-2.0",
+inflections: 1.1.1, "MIT",
+inlinable_string: 0.1.15, "Apache-2.0 OR MIT",
+inotify: 0.11.0, "ISC",
+inotify-sys: 0.1.5, "ISC",
+inout: 0.1.4, "Apache-2.0 OR MIT",
+instant: 0.1.13, "BSD-3-Clause",
+integration: 0.0.1, "Apache-2.0",
+inventory: 0.3.20, "Apache-2.0 OR MIT",
+ipnet: 2.11.0, "Apache-2.0 OR MIT",
+iri-string: 0.7.8, "Apache-2.0 OR MIT",
+is_terminal_polyfill: 1.70.1, "Apache-2.0 OR MIT",
+itertools: 0.12.1, "Apache-2.0 OR MIT",
+itertools: 0.13.0, "Apache-2.0 OR MIT",
+itertools: 0.14.0, "Apache-2.0 OR MIT",
+itoa: 1.0.15, "Apache-2.0 OR MIT",
+jiff: 0.2.15, "MIT OR Unlicense",
+jiff-static: 0.2.15, "MIT OR Unlicense",
+jni: 0.21.1, "Apache-2.0 OR MIT",
+jni-sys: 0.3.0, "Apache-2.0 OR MIT",
+jobserver: 0.1.33, "Apache-2.0 OR MIT",
+js-sys: 0.3.77, "Apache-2.0 OR MIT",
+json5: 0.4.1, "ISC",
+jsonwebtoken: 9.3.1, "MIT",
+jwalk: 0.8.1, "MIT",
+keyring: 3.6.2, "Apache-2.0 OR MIT",
+kqueue: 1.1.1, "MIT",
+kqueue-sys: 1.0.4, "MIT",
+language-tags: 0.3.2, "Apache-2.0 OR MIT",
+lazy-regex: 3.4.1, "MIT",
+lazy-regex-proc_macros: 3.4.1, "MIT",
+lazy_static: 1.5.0, "Apache-2.0 OR MIT",
+lazycell: 1.3.0, "Apache-2.0 OR MIT",
+lending-iterator: 0.1.7, "Apache-2.0 OR MIT OR Zlib",
+lending-iterator-proc_macros: 0.1.7, "Apache-2.0 OR MIT OR Zlib",
+libbz2-rs-sys: 0.2.1, "bzip2-1.0.6",
+libc: 0.2.174, "Apache-2.0 OR MIT",
+libdbus-sys: 0.2.5, "Apache-2.0 OR MIT",
+libgit2-sys: 0.18.2+1.9.1, "Apache-2.0 OR MIT",
+libloading: 0.8.8, "ISC",
+liblzma: 0.4.2, "Apache-2.0 OR MIT",
+liblzma-sys: 0.4.4, "Apache-2.0 OR MIT",
+libmimalloc-sys: 0.1.43, "MIT",
+libredox: 0.1.3, "MIT",
+libyml: 0.0.5, "MIT",
+libz-rs-sys: 0.5.1, "Zlib",
+libz-sys: 1.1.22, "Apache-2.0 OR MIT",
+linked-hash-map: 0.5.6, "Apache-2.0 OR MIT",
+linux-raw-sys: 0.4.15, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+linux-raw-sys: 0.9.4, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+litemap: 0.8.0, "Unicode-3.0",
+local-channel: 0.1.5, "Apache-2.0 OR MIT",
+local-waker: 0.1.4, "Apache-2.0 OR MIT",
+lock_api: 0.4.13, "Apache-2.0 OR MIT",
+log: 0.4.27, "Apache-2.0 OR MIT",
+logos: 0.15.0, "Apache-2.0 OR MIT",
+logos-codegen: 0.15.0, "Apache-2.0 OR MIT",
+logos-derive: 0.15.0, "Apache-2.0 OR MIT",
+loom: 0.7.2, "MIT",
+lru-slab: 0.1.2, "Apache-2.0 OR MIT OR Zlib",
+macro_rules_attribute: 0.1.3, "MIT",
+macro_rules_attribute-proc_macro: 0.1.3, "MIT",
+matchers: 0.1.0, "MIT",
+matchit: 0.7.3, "MIT AND BSD-3-Clause",
+matchit: 0.8.4, "MIT AND BSD-3-Clause",
+maybe-async: 0.2.10, "MIT",
+md5: 0.7.0, "Apache-2.0 OR MIT",
+memchr: 2.7.5, "MIT OR Unlicense",
+miette: 7.6.0, "Apache-2.0",
+miette-derive: 7.6.0, "Apache-2.0",
+mimalloc: 0.1.47, "MIT",
+mime: 0.3.17, "Apache-2.0 OR MIT",
+mime_guess: 2.0.5, "MIT",
+minidom: 0.16.0, "MPL-2.0",
+minimal-lexical: 0.2.1, "Apache-2.0 OR MIT",
+miniz_oxide: 0.8.9, "Apache-2.0 OR MIT OR Zlib",
+mio: 1.0.4, "MIT",
+mockall: 0.13.1, "Apache-2.0 OR MIT",
+mockall_derive: 0.13.1, "Apache-2.0 OR MIT",
+moka: 0.12.10, "Apache-2.0 OR MIT",
+nanorand: 0.7.0, "Zlib",
+never-say-never: 6.6.666, "Apache-2.0 OR MIT OR Zlib",
+nix: 0.30.1, "MIT",
+nom: 7.1.3, "MIT",
+nom_locate: 4.2.0, "MIT",
+nonzero_ext: 0.3.0, "Apache-2.0",
+nonzero_lit: 0.1.2, "Apache-2.0 OR CC0-1.0 OR MIT",
+normalize-line-endings: 0.3.0, "Apache-2.0",
+notify: 8.0.0, "CC0-1.0",
+notify-types: 2.0.0, "Apache-2.0 OR MIT",
+nougat: 0.2.4, "Apache-2.0 OR MIT OR Zlib",
+nougat-proc_macros: 0.2.4, "Apache-2.0 OR MIT OR Zlib",
+ntapi: 0.4.1, "Apache-2.0 OR MIT",
+nu-ansi-term: 0.46.0, "MIT",
+num: 0.4.3, "Apache-2.0 OR MIT",
+num-bigint: 0.4.6, "Apache-2.0 OR MIT",
+num-complex: 0.4.6, "Apache-2.0 OR MIT",
+num-conv: 0.1.0, "Apache-2.0 OR MIT",
+num-integer: 0.1.46, "Apache-2.0 OR MIT",
+num-iter: 0.1.45, "Apache-2.0 OR MIT",
+num-modular: 0.6.1, "Apache-2.0",
+num-order: 1.2.0, "Apache-2.0",
+num-rational: 0.4.2, "Apache-2.0 OR MIT",
+num-traits: 0.2.19, "Apache-2.0 OR MIT",
+num_cpus: 1.17.0, "Apache-2.0 OR MIT",
+num_threads: 0.1.7, "Apache-2.0 OR MIT",
+objc2-core-foundation: 0.3.1, "Apache-2.0 OR MIT OR Zlib",
+objc2-io-kit: 0.3.1, "Apache-2.0 OR MIT OR Zlib",
+object: 0.36.7, "Apache-2.0 OR MIT",
+octocrab: 0.44.1, "Apache-2.0 OR MIT",
+once_cell: 1.21.3, "Apache-2.0 OR MIT",
+once_cell_polyfill: 1.70.1, "Apache-2.0 OR MIT",
+opaque-debug: 0.3.1, "Apache-2.0 OR MIT",
+openssl: 0.10.73, "Apache-2.0",
+openssl-macros: 0.1.1, "Apache-2.0 OR MIT",
+openssl-probe: 0.1.6, "Apache-2.0 OR MIT",
+openssl-src: 300.5.0+3.5.0, "Apache-2.0 OR MIT",
+openssl-sys: 0.9.109, "MIT",
+opentelemetry: 0.30.0, "Apache-2.0",
+opentelemetry-appender-tracing: 0.30.1, "Apache-2.0",
+opentelemetry-http: 0.30.0, "Apache-2.0",
+opentelemetry-otlp: 0.30.0, "Apache-2.0",
+opentelemetry-proto: 0.30.0, "Apache-2.0",
+opentelemetry-semantic-conventions: 0.30.0, "Apache-2.0",
+opentelemetry_sdk: 0.30.0, "Apache-2.0",
+option-ext: 0.2.0, "MPL-2.0",
+ordered-multimap: 0.7.3, "MIT",
+overload: 0.1.1, "MIT",
+parking: 2.2.1, "Apache-2.0 OR MIT",
+parking_lot: 0.11.2, "Apache-2.0 OR MIT",
+parking_lot: 0.12.4, "Apache-2.0 OR MIT",
+parking_lot_core: 0.8.6, "Apache-2.0 OR MIT",
+parking_lot_core: 0.9.11, "Apache-2.0 OR MIT",
+passterm: 2.0.1, "BSD-3-Clause",
+paste: 1.0.15, "Apache-2.0 OR MIT",
+pathdiff: 0.2.3, "Apache-2.0 OR MIT",
+pbkdf2: 0.12.2, "Apache-2.0 OR MIT",
+pear: 0.2.9, "Apache-2.0 OR MIT",
+pear_codegen: 0.2.9, "Apache-2.0 OR MIT",
+peg: 0.6.3, "MIT",
+peg-macros: 0.6.3, "MIT",
+peg-runtime: 0.6.3, "MIT",
+pem: 3.0.5, "MIT",
+percent-encoding: 2.3.1, "Apache-2.0 OR MIT",
+pest: 2.8.1, "Apache-2.0 OR MIT",
+pest_derive: 2.8.1, "Apache-2.0 OR MIT",
+pest_generator: 2.8.1, "Apache-2.0 OR MIT",
+pest_meta: 2.8.1, "Apache-2.0 OR MIT",
+pin-project: 1.1.10, "Apache-2.0 OR MIT",
+pin-project-internal: 1.1.10, "Apache-2.0 OR MIT",
+pin-project-lite: 0.2.16, "Apache-2.0 OR MIT",
+pin-utils: 0.1.0, "Apache-2.0 OR MIT",
+pinned: 0.1.0, "Apache-2.0 OR MIT",
+pkg-config: 0.3.32, "Apache-2.0 OR MIT",
+polonius-the-crab: 0.2.1, "Apache-2.0 OR MIT OR Zlib",
+polyval: 0.6.2, "Apache-2.0 OR MIT",
+portable-atomic: 1.11.1, "Apache-2.0 OR MIT",
+portable-atomic-util: 0.2.4, "Apache-2.0 OR MIT",
+postcard: 1.1.1, "Apache-2.0 OR MIT",
+potential_utf: 0.1.2, "Unicode-3.0",
+powerfmt: 0.2.0, "Apache-2.0 OR MIT",
+ppv-lite86: 0.2.21, "Apache-2.0 OR MIT",
+predicates: 3.1.3, "Apache-2.0 OR MIT",
+predicates-core: 1.0.9, "Apache-2.0 OR MIT",
+predicates-tree: 1.0.12, "Apache-2.0 OR MIT",
+prettyplease: 0.2.35, "Apache-2.0 OR MIT",
+proc-macro-crate: 1.3.1, "Apache-2.0 OR MIT",
+proc-macro-crate: 3.3.0, "Apache-2.0 OR MIT",
+proc-macro-error: 1.0.4, "Apache-2.0 OR MIT",
+proc-macro-error-attr: 1.0.4, "Apache-2.0 OR MIT",
+proc-macro2: 1.0.95, "Apache-2.0 OR MIT",
+proc-macro2-diagnostics: 0.10.1, "Apache-2.0 OR MIT",
+prokio: 0.1.0, "Apache-2.0 OR MIT",
+prometheus-client: 0.23.1, "Apache-2.0 OR MIT",
+prometheus-client-derive-encode: 0.4.2, "Apache-2.0 OR MIT",
+prost: 0.13.5, "Apache-2.0",
+prost-derive: 0.13.5, "Apache-2.0",
+prost-reflect: 0.15.3, "Apache-2.0 OR MIT",
+prost-types: 0.13.5, "Apache-2.0",
+protox: 0.8.0, "Apache-2.0 OR MIT",
+protox-parse: 0.8.0, "Apache-2.0 OR MIT",
+ptr_meta: 0.1.4, "MIT",
+ptr_meta_derive: 0.1.4, "MIT",
+quanta: 0.12.6, "MIT",
+quick-xml: 0.32.0, "MIT",
+quick-xml: 0.36.2, "MIT",
+quinn: 0.11.8, "Apache-2.0 OR MIT",
+quinn-proto: 0.11.12, "Apache-2.0 OR MIT",
+quinn-udp: 0.5.13, "Apache-2.0 OR MIT",
+quote: 1.0.40, "Apache-2.0 OR MIT",
+r-efi: 5.3.0, "Apache-2.0 OR LGPL-2.1-or-later OR MIT",
+radium: 0.7.0, "MIT",
+rand: 0.8.5, "Apache-2.0 OR MIT",
+rand: 0.9.1, "Apache-2.0 OR MIT",
+rand_chacha: 0.3.1, "Apache-2.0 OR MIT",
+rand_chacha: 0.9.0, "Apache-2.0 OR MIT",
+rand_core: 0.6.4, "Apache-2.0 OR MIT",
+rand_core: 0.9.3, "Apache-2.0 OR MIT",
+raw-cpuid: 11.5.0, "MIT",
+rayon: 1.10.0, "Apache-2.0 OR MIT",
+rayon-core: 1.12.1, "Apache-2.0 OR MIT",
+rcgen: 0.13.2, "Apache-2.0 OR MIT",
+redox_syscall: 0.2.16, "MIT",
+redox_syscall: 0.5.13, "MIT",
+redox_users: 0.5.0, "MIT",
+ref-cast: 1.0.24, "Apache-2.0 OR MIT",
+ref-cast-impl: 1.0.24, "Apache-2.0 OR MIT",
+regex: 1.11.1, "Apache-2.0 OR MIT",
+regex-automata: 0.1.10, "MIT OR Unlicense",
+regex-automata: 0.4.9, "Apache-2.0 OR MIT",
+regex-lite: 0.1.6, "Apache-2.0 OR MIT",
+regex-syntax: 0.6.29, "Apache-2.0 OR MIT",
+regex-syntax: 0.7.5, "Apache-2.0 OR MIT",
+regex-syntax: 0.8.5, "Apache-2.0 OR MIT",
+rend: 0.4.2, "MIT",
+reqwest: 0.12.20, "Apache-2.0 OR MIT",
+reqwest-middleware: 0.4.2, "Apache-2.0 OR MIT",
+reqwest-retry: 0.7.0, "Apache-2.0 OR MIT",
+retry-policies: 0.4.0, "Apache-2.0 OR MIT",
+ring: 0.17.14, "Apache-2.0 AND ISC",
+rkyv: 0.7.45, "MIT",
+rkyv_derive: 0.7.45, "MIT",
+ron: 0.8.1, "Apache-2.0 OR MIT",
+route-recognizer: 0.3.1, "MIT",
+rust-ini: 0.21.1, "MIT",
+rust-s3: 0.36.0-beta.2, "MIT",
+rust_decimal: 1.37.2, "MIT",
+rustc-demangle: 0.1.25, "Apache-2.0 OR MIT",
+rustc-hash: 1.1.0, "Apache-2.0 OR MIT",
+rustc-hash: 2.1.1, "Apache-2.0 OR MIT",
+rustc_version: 0.4.1, "Apache-2.0 OR MIT",
+rustix: 0.38.44, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+rustix: 1.0.7, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+rustls: 0.23.28, "Apache-2.0 OR ISC OR MIT",
+rustls-native-certs: 0.8.1, "Apache-2.0 OR ISC OR MIT",
+rustls-pemfile: 2.2.0, "Apache-2.0 OR ISC OR MIT",
+rustls-pki-types: 1.12.0, "Apache-2.0 OR MIT",
+rustls-platform-verifier: 0.5.3, "Apache-2.0 OR MIT",
+rustls-platform-verifier-android: 0.1.1, "Apache-2.0 OR MIT",
+rustls-webpki: 0.103.3, "ISC",
+rustversion: 1.0.21, "Apache-2.0 OR MIT",
+rxml: 0.11.1, "MIT",
+rxml_validation: 0.11.0, "MIT",
+ryu: 1.0.20, "Apache-2.0 OR BSL-1.0",
+safe_arch: 0.7.4, "Apache-2.0 OR MIT OR Zlib",
+same-file: 1.0.6, "MIT OR Unlicense",
+scc: 2.3.4, "Apache-2.0",
+schannel: 0.1.27, "MIT",
+schemars: 0.9.0, "MIT",
+scoped-tls: 1.0.1, "Apache-2.0 OR MIT",
+scopeguard: 1.2.0, "Apache-2.0 OR MIT",
+sdd: 3.0.8, "Apache-2.0",
+seahash: 4.1.0, "MIT",
+sealed: 0.5.0, "Apache-2.0 OR MIT",
+secrecy: 0.10.3, "Apache-2.0 OR MIT",
+security-framework: 3.2.0, "Apache-2.0 OR MIT",
+security-framework-sys: 2.14.0, "Apache-2.0 OR MIT",
+semver: 1.0.26, "Apache-2.0 OR MIT",
+serde: 1.0.219, "Apache-2.0 OR MIT",
+serde-wasm-bindgen: 0.5.0, "MIT",
+serde-wasm-bindgen: 0.6.5, "MIT",
+serde_derive: 1.0.219, "Apache-2.0 OR MIT",
+serde_json: 1.0.140, "Apache-2.0 OR MIT",
+serde_path_to_error: 0.1.17, "Apache-2.0 OR MIT",
+serde_spanned: 0.6.9, "Apache-2.0 OR MIT",
+serde_urlencoded: 0.7.1, "Apache-2.0 OR MIT",
+serde_with: 3.13.0, "Apache-2.0 OR MIT",
+serde_with_macros: 3.13.0, "Apache-2.0 OR MIT",
+serde_yml: 0.0.12, "Apache-2.0 OR MIT",
+serial_test: 3.2.0, "MIT",
+serial_test_derive: 3.2.0, "MIT",
+server: 0.5.0, "Apache-2.0",
+sha1: 0.10.6, "Apache-2.0 OR MIT",
+sha2: 0.10.9, "Apache-2.0 OR MIT",
+sharded-slab: 0.1.7, "MIT",
+shlex: 1.3.0, "Apache-2.0 OR MIT",
+signal-hook-registry: 1.4.5, "Apache-2.0 OR MIT",
+simd-adler32: 0.3.7, "MIT",
+simd-json: 0.15.1, "Apache-2.0 OR MIT",
+simdutf8: 0.1.5, "Apache-2.0 OR MIT",
+simple_asn1: 0.6.3, "ISC",
+siphasher: 1.0.1, "Apache-2.0 OR MIT",
+slab: 0.4.10, "MIT",
+smallvec: 1.15.1, "Apache-2.0 OR MIT",
+smart-default: 0.7.1, "MIT",
+smawk: 0.3.2, "MIT",
+snafu: 0.8.6, "Apache-2.0 OR MIT",
+snafu-derive: 0.8.6, "Apache-2.0 OR MIT",
+socket2: 0.5.10, "Apache-2.0 OR MIT",
+spin: 0.9.8, "MIT",
+spinning_top: 0.3.0, "Apache-2.0 OR MIT",
+stable_deref_trait: 1.2.0, "Apache-2.0 OR MIT",
+static-toml: 1.3.0, "MIT",
+static_assertions: 1.1.0, "Apache-2.0 OR MIT",
+strsim: 0.11.1, "MIT",
+strum: 0.27.1, "MIT",
+strum_macros: 0.27.1, "MIT",
+subtle: 2.6.1, "BSD-3-Clause",
+syn: 1.0.109, "Apache-2.0 OR MIT",
+syn: 2.0.104, "Apache-2.0 OR MIT",
+sync_wrapper: 1.0.2, "Apache-2.0",
+synstructure: 0.13.2, "MIT",
+synthez: 0.3.1, "BlueOak-1.0.0",
+synthez-codegen: 0.3.1, "BlueOak-1.0.0",
+synthez-core: 0.3.1, "BlueOak-1.0.0",
+sysinfo: 0.34.2, "MIT",
+sysinfo: 0.35.2, "MIT",
+tagptr: 0.2.0, "Apache-2.0 OR MIT",
+tap: 1.0.1, "MIT",
+tempfile: 3.20.0, "Apache-2.0 OR MIT",
+terminal_size: 0.4.2, "Apache-2.0 OR MIT",
+termtree: 0.5.1, "MIT",
+test-case: 3.3.1, "MIT",
+test-case-core: 3.3.1, "MIT",
+test-case-macros: 3.3.1, "MIT",
+textwrap: 0.16.2, "MIT",
+thiserror: 1.0.69, "Apache-2.0 OR MIT",
+thiserror: 2.0.12, "Apache-2.0 OR MIT",
+thiserror-impl: 1.0.69, "Apache-2.0 OR MIT",
+thiserror-impl: 2.0.12, "Apache-2.0 OR MIT",
+thread_local: 1.1.9, "Apache-2.0 OR MIT",
+time: 0.3.41, "Apache-2.0 OR MIT",
+time-core: 0.1.4, "Apache-2.0 OR MIT",
+time-macros: 0.2.22, "Apache-2.0 OR MIT",
+tiny-keccak: 2.0.2, "CC0-1.0",
+tinystr: 0.8.1, "Unicode-3.0",
+tinyvec: 1.9.0, "Apache-2.0 OR MIT OR Zlib",
+tinyvec_macros: 0.1.1, "Apache-2.0 OR MIT OR Zlib",
+tokio: 1.45.1, "MIT",
+tokio-macros: 2.5.0, "MIT",
+tokio-rustls: 0.26.2, "Apache-2.0 OR MIT",
+tokio-stream: 0.1.17, "MIT",
+tokio-util: 0.7.15, "MIT",
+toml: 0.8.23, "Apache-2.0 OR MIT",
+toml_datetime: 0.6.11, "Apache-2.0 OR MIT",
+toml_edit: 0.19.15, "Apache-2.0 OR MIT",
+toml_edit: 0.22.27, "Apache-2.0 OR MIT",
+toml_write: 0.1.2, "Apache-2.0 OR MIT",
+tonic: 0.12.3, "MIT",
+tonic: 0.13.1, "MIT",
+tools: 0.1.0, "Apache-2.0",
+tower: 0.4.13, "MIT",
+tower: 0.5.2, "MIT",
+tower-http: 0.6.6, "MIT",
+tower-layer: 0.3.3, "MIT",
+tower-service: 0.3.3, "MIT",
+tracing: 0.1.41, "MIT",
+tracing-appender: 0.2.3, "MIT",
+tracing-attributes: 0.1.30, "MIT",
+tracing-core: 0.1.34, "MIT",
+tracing-log: 0.2.0, "MIT",
+tracing-opentelemetry: 0.31.0, "MIT",
+tracing-subscriber: 0.3.19, "MIT",
+trait-variant: 0.1.2, "Apache-2.0 OR MIT",
+trim-in-place: 0.1.7, "MIT",
+try-lock: 0.2.5, "MIT",
+twox-hash: 2.1.1, "MIT",
+typed-builder: 0.15.2, "Apache-2.0 OR MIT",
+typed-builder-macro: 0.15.2, "Apache-2.0 OR MIT",
+typenum: 1.18.0, "Apache-2.0 OR MIT",
+ucd-trie: 0.1.7, "Apache-2.0 OR MIT",
+ulid: 1.2.1, "MIT",
+uncased: 0.9.10, "Apache-2.0 OR MIT",
+unicase: 2.8.1, "Apache-2.0 OR MIT",
+unicode-ident: 1.0.18, "(MIT OR Apache-2.0) AND Unicode-3.0",
+unicode-linebreak: 0.1.5, "Apache-2.0",
+unicode-segmentation: 1.12.0, "Apache-2.0 OR MIT",
+unicode-width: 0.1.14, "Apache-2.0 OR MIT",
+unicode-width: 0.2.1, "Apache-2.0 OR MIT",
+unicode-xid: 0.2.6, "Apache-2.0 OR MIT",
+universal-hash: 0.5.1, "Apache-2.0 OR MIT",
+untrusted: 0.9.0, "ISC",
+unty: 0.0.4, "Apache-2.0 OR MIT",
+url: 2.5.4, "Apache-2.0 OR MIT",
+urlencoding: 2.1.3, "MIT",
+utf8-width: 0.1.7, "MIT",
+utf8_iter: 1.0.4, "Apache-2.0 OR MIT",
+utf8parse: 0.2.2, "Apache-2.0 OR MIT",
+uuid: 1.17.0, "Apache-2.0 OR MIT",
+v_htmlescape: 0.15.8, "Apache-2.0 OR MIT",
+valuable: 0.1.1, "MIT",
+value-trait: 0.11.0, "Apache-2.0 OR MIT",
+vcpkg: 0.2.15, "Apache-2.0 OR MIT",
+vergen: 9.0.6, "Apache-2.0 OR MIT",
+vergen-git2: 1.0.7, "Apache-2.0 OR MIT",
+vergen-lib: 0.1.6, "Apache-2.0 OR MIT",
+version_check: 0.9.5, "Apache-2.0 OR MIT",
+virtue: 0.0.18, "MIT",
+wait-timeout: 0.2.1, "Apache-2.0 OR MIT",
+walkdir: 2.5.0, "MIT OR Unlicense",
+want: 0.3.1, "MIT",
+wasi: 0.11.1+wasi-snapshot-preview1, "Apache-2.0 OR Apache-2.0 WITH 
LLVM-exception OR MIT",
+wasi: 0.14.2+wasi-0.2.4, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+wasm-bindgen: 0.2.100, "Apache-2.0 OR MIT",
+wasm-bindgen-backend: 0.2.100, "Apache-2.0 OR MIT",
+wasm-bindgen-futures: 0.4.50, "Apache-2.0 OR MIT",
+wasm-bindgen-macro: 0.2.100, "Apache-2.0 OR MIT",
+wasm-bindgen-macro-support: 0.2.100, "Apache-2.0 OR MIT",
+wasm-bindgen-shared: 0.2.100, "Apache-2.0 OR MIT",
+wasm-streams: 0.4.2, "Apache-2.0 OR MIT",
+wasm-timer: 0.2.5, "MIT",
+web-sys: 0.3.77, "Apache-2.0 OR MIT",
+web-time: 1.1.0, "Apache-2.0 OR MIT",
+webpki-root-certs: 0.26.11, "CDLA-Permissive-2.0",
+webpki-root-certs: 1.0.1, "CDLA-Permissive-2.0",
+webpki-roots: 0.26.11, "CDLA-Permissive-2.0",
+webpki-roots: 1.0.1, "CDLA-Permissive-2.0",
+which: 4.4.2, "MIT",
+wide: 0.7.33, "Apache-2.0 OR MIT OR Zlib",
+winapi: 0.3.9, "Apache-2.0 OR MIT",
+winapi-i686-pc-windows-gnu: 0.4.0, "Apache-2.0 OR MIT",
+winapi-util: 0.1.9, "MIT OR Unlicense",
+winapi-x86_64-pc-windows-gnu: 0.4.0, "Apache-2.0 OR MIT",
+windows: 0.57.0, "Apache-2.0 OR MIT",
+windows: 0.61.3, "Apache-2.0 OR MIT",
+windows-collections: 0.2.0, "Apache-2.0 OR MIT",
+windows-core: 0.57.0, "Apache-2.0 OR MIT",
+windows-core: 0.61.2, "Apache-2.0 OR MIT",
+windows-future: 0.2.1, "Apache-2.0 OR MIT",
+windows-implement: 0.57.0, "Apache-2.0 OR MIT",
+windows-implement: 0.60.0, "Apache-2.0 OR MIT",
+windows-interface: 0.57.0, "Apache-2.0 OR MIT",
+windows-interface: 0.59.1, "Apache-2.0 OR MIT",
+windows-link: 0.1.3, "Apache-2.0 OR MIT",
+windows-numerics: 0.2.0, "Apache-2.0 OR MIT",
+windows-result: 0.1.2, "Apache-2.0 OR MIT",
+windows-result: 0.3.4, "Apache-2.0 OR MIT",
+windows-strings: 0.4.2, "Apache-2.0 OR MIT",
+windows-sys: 0.45.0, "Apache-2.0 OR MIT",
+windows-sys: 0.48.0, "Apache-2.0 OR MIT",
+windows-sys: 0.52.0, "Apache-2.0 OR MIT",
+windows-sys: 0.59.0, "Apache-2.0 OR MIT",
+windows-sys: 0.60.2, "Apache-2.0 OR MIT",
+windows-targets: 0.42.2, "Apache-2.0 OR MIT",
+windows-targets: 0.48.5, "Apache-2.0 OR MIT",
+windows-targets: 0.52.6, "Apache-2.0 OR MIT",
+windows-targets: 0.53.2, "Apache-2.0 OR MIT",
+windows-threading: 0.1.0, "Apache-2.0 OR MIT",
+windows_aarch64_gnullvm: 0.42.2, "Apache-2.0 OR MIT",
+windows_aarch64_gnullvm: 0.48.5, "Apache-2.0 OR MIT",
+windows_aarch64_gnullvm: 0.52.6, "Apache-2.0 OR MIT",
+windows_aarch64_gnullvm: 0.53.0, "Apache-2.0 OR MIT",
+windows_aarch64_msvc: 0.42.2, "Apache-2.0 OR MIT",
+windows_aarch64_msvc: 0.48.5, "Apache-2.0 OR MIT",
+windows_aarch64_msvc: 0.52.6, "Apache-2.0 OR MIT",
+windows_aarch64_msvc: 0.53.0, "Apache-2.0 OR MIT",
+windows_i686_gnu: 0.42.2, "Apache-2.0 OR MIT",
+windows_i686_gnu: 0.48.5, "Apache-2.0 OR MIT",
+windows_i686_gnu: 0.52.6, "Apache-2.0 OR MIT",
+windows_i686_gnu: 0.53.0, "Apache-2.0 OR MIT",
+windows_i686_gnullvm: 0.52.6, "Apache-2.0 OR MIT",
+windows_i686_gnullvm: 0.53.0, "Apache-2.0 OR MIT",
+windows_i686_msvc: 0.42.2, "Apache-2.0 OR MIT",
+windows_i686_msvc: 0.48.5, "Apache-2.0 OR MIT",
+windows_i686_msvc: 0.52.6, "Apache-2.0 OR MIT",
+windows_i686_msvc: 0.53.0, "Apache-2.0 OR MIT",
+windows_x86_64_gnu: 0.42.2, "Apache-2.0 OR MIT",
+windows_x86_64_gnu: 0.48.5, "Apache-2.0 OR MIT",
+windows_x86_64_gnu: 0.52.6, "Apache-2.0 OR MIT",
+windows_x86_64_gnu: 0.53.0, "Apache-2.0 OR MIT",
+windows_x86_64_gnullvm: 0.42.2, "Apache-2.0 OR MIT",
+windows_x86_64_gnullvm: 0.48.5, "Apache-2.0 OR MIT",
+windows_x86_64_gnullvm: 0.52.6, "Apache-2.0 OR MIT",
+windows_x86_64_gnullvm: 0.53.0, "Apache-2.0 OR MIT",
+windows_x86_64_msvc: 0.42.2, "Apache-2.0 OR MIT",
+windows_x86_64_msvc: 0.48.5, "Apache-2.0 OR MIT",
+windows_x86_64_msvc: 0.52.6, "Apache-2.0 OR MIT",
+windows_x86_64_msvc: 0.53.0, "Apache-2.0 OR MIT",
+winnow: 0.5.40, "MIT",
+winnow: 0.7.11, "MIT",
+wit-bindgen-rt: 0.39.0, "Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT",
+writeable: 0.6.1, "Unicode-3.0",
+wyz: 0.5.1, "MIT",
+yaml-rust2: 0.10.3, "Apache-2.0 OR MIT",
+yansi: 1.0.1, "Apache-2.0 OR MIT",
+yasna: 0.5.2, "Apache-2.0 OR MIT",
+yew: 0.21.0, "Apache-2.0 OR MIT",
+yew-hooks: 0.3.3, "Apache-2.0 OR MIT",
+yew-macro: 0.21.0, "Apache-2.0 OR MIT",
+yew-router: 0.18.0, "Apache-2.0 OR MIT",
+yew-router-macro: 0.18.0, "Apache-2.0 OR MIT",
+yoke: 0.8.0, "Unicode-3.0",
+yoke-derive: 0.8.0, "Unicode-3.0",
+zerocopy: 0.8.26, "Apache-2.0 OR BSD-2-Clause OR MIT",
+zerocopy-derive: 0.8.26, "Apache-2.0 OR BSD-2-Clause OR MIT",
+zerofrom: 0.1.6, "Unicode-3.0",
+zerofrom-derive: 0.1.6, "Unicode-3.0",
+zeroize: 1.8.1, "Apache-2.0 OR MIT",
+zeroize_derive: 1.4.2, "Apache-2.0 OR MIT",
+zerotrie: 0.2.2, "Unicode-3.0",
+zerovec: 0.11.2, "Unicode-3.0",
+zerovec-derive: 0.11.1, "Unicode-3.0",
+zip: 4.2.0, "MIT",
+zlib-rs: 0.5.1, "Zlib",
+zopfli: 0.8.2, "Apache-2.0",
+zstd: 0.13.3, "MIT",
+zstd-safe: 7.2.4, "Apache-2.0 OR MIT",
+zstd-sys: 2.0.15+zstd.1.5.7, "Apache-2.0 OR MIT",

Reply via email to