From 0c6abbba5d34b01dc5cc778529bd277ef2b9e92f Mon Sep 17 00:00:00 2001
From: BennyFranciscus <268274351+BennyFranciscus@users.noreply.github.com>
Date: Sat, 28 Mar 2026 22:51:00 +0000
Subject: [PATCH 1/2] =?UTF-8?q?Add=20Helidon=20SE=204.4=20(Java,=20N=C3=AD?=
=?UTF-8?q?ma=20virtual=20threads=20web=20server)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Helidon SE 4.4.0 — Oracle's cloud-native Java framework with its own
Níma WebServer built on Java 21 virtual threads. Unlike other JVM entries
(Spring/Tomcat, Quarkus/Netty, Vert.x/Netty, Ktor/Netty), Helidon uses
a custom server with thread-per-request on virtual threads.
Endpoints: baseline, pipelined, limited-conn, json, upload, compression,
noisy, mixed, async-db (HikariCP + PostgreSQL), static files.
Uses Jackson for JSON, SQLite JDBC (thread-local, read-only, mmap),
HikariCP for PostgreSQL connection pooling.
JVM: Eclipse Temurin 25, ZGC, UseNUMA, AlwaysPreTouch.
---
frameworks/helidon/Dockerfile | 20 +
frameworks/helidon/meta.json | 21 +
frameworks/helidon/pom.xml | 62 +++
.../src/main/java/com/httparena/Main.java | 386 ++++++++++++++++++
4 files changed, 489 insertions(+)
create mode 100644 frameworks/helidon/Dockerfile
create mode 100644 frameworks/helidon/meta.json
create mode 100644 frameworks/helidon/pom.xml
create mode 100644 frameworks/helidon/src/main/java/com/httparena/Main.java
diff --git a/frameworks/helidon/Dockerfile b/frameworks/helidon/Dockerfile
new file mode 100644
index 00000000..b19288a7
--- /dev/null
+++ b/frameworks/helidon/Dockerfile
@@ -0,0 +1,20 @@
+FROM maven:3.9-eclipse-temurin-25 AS build
+WORKDIR /app
+COPY pom.xml .
+RUN mvn dependency:go-offline -q
+COPY src ./src
+RUN mvn package -DskipTests -q
+
+FROM eclipse-temurin:25-jre
+WORKDIR /app
+COPY --from=build /app/target/helidon-httparena.jar app.jar
+COPY --from=build /app/target/libs ./libs
+EXPOSE 8080
+ENTRYPOINT ["java", \
+ "-server", \
+ "-XX:+UseZGC", \
+ "-XX:+UseNUMA", \
+ "-XX:+AlwaysPreTouch", \
+ "-XX:-StackTraceInThrowable", \
+ "-cp", "app.jar:libs/*", \
+ "com.httparena.Main"]
diff --git a/frameworks/helidon/meta.json b/frameworks/helidon/meta.json
new file mode 100644
index 00000000..80ea05d6
--- /dev/null
+++ b/frameworks/helidon/meta.json
@@ -0,0 +1,21 @@
+{
+ "display_name": "helidon",
+ "language": "Java",
+ "type": "framework",
+ "engine": "Níma (Virtual Threads)",
+ "description": "Helidon SE 4.4 on Níma WebServer with Java 21 virtual threads, Jackson for JSON.",
+ "repo": "https://github.com/helidon-io/helidon",
+ "enabled": true,
+ "tests": [
+ "baseline",
+ "pipelined",
+ "limited-conn",
+ "json",
+ "upload",
+ "compression",
+ "noisy",
+ "mixed",
+ "async-db",
+ "static"
+ ]
+}
diff --git a/frameworks/helidon/pom.xml b/frameworks/helidon/pom.xml
new file mode 100644
index 00000000..8eea0154
--- /dev/null
+++ b/frameworks/helidon/pom.xml
@@ -0,0 +1,62 @@
+
+
+ 4.0.0
+
+ io.helidon.applications
+ helidon-se
+ 4.4.0
+
+
+ com.httparena
+ helidon-httparena
+ 1.0.0
+ HttpArena Helidon SE
+
+
+ com.httparena.Main
+ 2.18.3
+
+
+
+
+ io.helidon.webserver
+ helidon-webserver
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.version}
+
+
+ org.xerial
+ sqlite-jdbc
+ 3.47.2.0
+
+
+ com.zaxxer
+ HikariCP
+ 6.2.1
+
+
+ org.postgresql
+ postgresql
+ 42.7.5
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ copy-libs
+
+
+
+
+
+
diff --git a/frameworks/helidon/src/main/java/com/httparena/Main.java b/frameworks/helidon/src/main/java/com/httparena/Main.java
new file mode 100644
index 00000000..0fa6c629
--- /dev/null
+++ b/frameworks/helidon/src/main/java/com/httparena/Main.java
@@ -0,0 +1,386 @@
+package com.httparena;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.zaxxer.hikari.HikariConfig;
+import com.zaxxer.hikari.HikariDataSource;
+import io.helidon.http.HeaderNames;
+import io.helidon.http.HeaderName;
+import io.helidon.http.Status;
+import io.helidon.webserver.WebServer;
+import io.helidon.webserver.http.HttpRouting;
+import io.helidon.webserver.http.ServerRequest;
+import io.helidon.webserver.http.ServerResponse;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.net.URI;
+import java.nio.file.Files;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.zip.Deflater;
+import java.util.zip.GZIPOutputStream;
+
+public class Main {
+
+ private static final ObjectMapper MAPPER = new ObjectMapper();
+ private static final HeaderName SERVER_HEADER = HeaderNames.create("Server");
+ private static final HeaderName CONTENT_TYPE = HeaderNames.CONTENT_TYPE;
+ private static final HeaderName CONTENT_ENCODING = HeaderNames.CONTENT_ENCODING;
+ private static final HeaderName ACCEPT_ENCODING = HeaderNames.ACCEPT_ENCODING;
+
+ private static final String DB_QUERY =
+ "SELECT id, name, category, price, quantity, active, tags, rating_score, rating_count FROM items WHERE price BETWEEN ? AND ? LIMIT 50";
+
+ private static List