diff --git a/frameworks/Java/activeweb/pom.xml b/frameworks/Java/activeweb/pom.xml
index 25171d2d172..ea329127a18 100644
--- a/frameworks/Java/activeweb/pom.xml
+++ b/frameworks/Java/activeweb/pom.xml
@@ -115,7 +115,7 @@
com.fasterxml.jackson.core
jackson-core
- 2.9.9
+ 2.13.0
com.fasterxml.jackson.core
diff --git a/frameworks/Java/httpserver/httpserver-postgres.dockerfile b/frameworks/Java/httpserver/httpserver-postgres.dockerfile
index f9441b41a27..c45944e5fe6 100644
--- a/frameworks/Java/httpserver/httpserver-postgres.dockerfile
+++ b/frameworks/Java/httpserver/httpserver-postgres.dockerfile
@@ -1,13 +1,13 @@
-FROM maven:3.6.1-jdk-11-slim as maven
+FROM maven:3-eclipse-temurin-24-alpine as maven
WORKDIR /httpserver
COPY pom.xml pom.xml
COPY src src
RUN mvn compile assembly:single -q
-FROM openjdk:11.0.3-jdk-slim
+FROM openjdk:25-jdk-slim
WORKDIR /httpserver
COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar app.jar
EXPOSE 8080
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar", "postgres"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar", "postgres"]
diff --git a/frameworks/Java/httpserver/httpserver.dockerfile b/frameworks/Java/httpserver/httpserver.dockerfile
index 9e85735fed8..01aaecc935c 100644
--- a/frameworks/Java/httpserver/httpserver.dockerfile
+++ b/frameworks/Java/httpserver/httpserver.dockerfile
@@ -1,13 +1,13 @@
-FROM maven:3.6.1-jdk-11-slim as maven
+FROM maven:3-eclipse-temurin-24-alpine as maven
WORKDIR /httpserver
COPY pom.xml pom.xml
COPY src src
RUN mvn compile assembly:single -q
-FROM openjdk:11.0.3-jdk-slim
+FROM openjdk:25-jdk-slim
WORKDIR /httpserver
COPY --from=maven /httpserver/target/httpserver-1.0-jar-with-dependencies.jar app.jar
EXPOSE 8080
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-jar", "app.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-jar", "app.jar"]
diff --git a/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java b/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java
index 60893b4ba2e..9f40faafc2e 100755
--- a/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java
+++ b/frameworks/Java/httpserver/src/main/java/benchmarks/Server.java
@@ -132,7 +132,7 @@ public static void main(String[] args) throws Exception {
System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "DEBUG");
// create server
HttpServer server = HttpServer.create(new InetSocketAddress(port), 1024 * 8);
- server.setExecutor(Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()));
+ server.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
// add context handlers
server.createContext("/plaintext", createPlaintextHandler());
server.createContext("/json", createJSONHandler());
diff --git a/frameworks/Java/jooby/pom.xml b/frameworks/Java/jooby/pom.xml
index 3b6edfc79ec..6942156ba5c 100644
--- a/frameworks/Java/jooby/pom.xml
+++ b/frameworks/Java/jooby/pom.xml
@@ -14,7 +14,7 @@
3.4.0
4.1.113.Final
2.0.2
- 42.7.4
+ 42.7.7
UTF-8
22
22
diff --git a/frameworks/Java/ninja-standalone/pom.xml b/frameworks/Java/ninja-standalone/pom.xml
index 1c3aaafb7ee..3d199e2027e 100644
--- a/frameworks/Java/ninja-standalone/pom.xml
+++ b/frameworks/Java/ninja-standalone/pom.xml
@@ -51,7 +51,7 @@
com.fasterxml.jackson.core
jackson-core
- 2.9.9
+ 2.13.0
com.fasterxml.jackson.module
diff --git a/frameworks/Java/smart-socket/pom.xml b/frameworks/Java/smart-socket/pom.xml
index f16d0f03860..7cf9b85b3e7 100644
--- a/frameworks/Java/smart-socket/pom.xml
+++ b/frameworks/Java/smart-socket/pom.xml
@@ -20,13 +20,13 @@
tech.smartboot.feat
feat-cloud-starter
- 0.9.0
-
-
- io.github.smartboot.socket
- aio-pro
- 1.5.62-SNAPSHOT
+ 1.1.0-SNAPSHOT
+
+
+
+
+
tech.smartboot.servlet
servlet-core
diff --git a/frameworks/Java/solon/pom.xml b/frameworks/Java/solon/pom.xml
index 30701fd2661..bd21bbd75df 100644
--- a/frameworks/Java/solon/pom.xml
+++ b/frameworks/Java/solon/pom.xml
@@ -62,7 +62,7 @@
org.postgresql
postgresql
- 42.7.4
+ 42.7.7
diff --git a/frameworks/Java/tio-boot/pom.xml b/frameworks/Java/tio-boot/pom.xml
index 13cfd714d95..14b3116b5b1 100644
--- a/frameworks/Java/tio-boot/pom.xml
+++ b/frameworks/Java/tio-boot/pom.xml
@@ -11,7 +11,7 @@
1.8
${java.version}
${java.version}
- 1.9.7
+ 1.9.8
com.litongjava.tio.http.server.MainApp
diff --git a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/MainAppConfig.java b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/MainAppConfig.java
index 2852e830fe4..eda7de88674 100644
--- a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/MainAppConfig.java
+++ b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/MainAppConfig.java
@@ -5,9 +5,9 @@
import com.litongjava.tio.http.server.config.EhCachePluginConfig;
import com.litongjava.tio.http.server.config.EnjoyEngineConfig;
import com.litongjava.tio.http.server.config.MysqlDbConfig;
-import com.litongjava.tio.http.server.controller.CacheHandler;
-import com.litongjava.tio.http.server.controller.DbHandler;
-import com.litongjava.tio.http.server.controller.IndexHandler;
+import com.litongjava.tio.http.server.handler.CacheHandler;
+import com.litongjava.tio.http.server.handler.DbHandler;
+import com.litongjava.tio.http.server.handler.IndexHandler;
import com.litongjava.tio.http.server.router.HttpRequestRouter;
import com.litongjava.tio.utils.environment.EnvUtils;
@@ -38,7 +38,6 @@ public void config() throws Exception {
TioBootServer server = TioBootServer.me();
HttpRequestRouter requestRouter = server.getRequestRouter();
if (requestRouter != null) {
- requestRouter.add("/", controller::index);
requestRouter.add("/plaintext", controller::plaintext);
requestRouter.add("/json", controller::json);
diff --git a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/CacheHandler.java b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/CacheHandler.java
similarity index 96%
rename from frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/CacheHandler.java
rename to frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/CacheHandler.java
index c0d1f9c3066..ad11cc294ea 100644
--- a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/CacheHandler.java
+++ b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/CacheHandler.java
@@ -1,4 +1,4 @@
-package com.litongjava.tio.http.server.controller;
+package com.litongjava.tio.http.server.handler;
import java.util.ArrayList;
import java.util.List;
diff --git a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/DbHandler.java b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/DbHandler.java
similarity index 98%
rename from frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/DbHandler.java
rename to frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/DbHandler.java
index 3ab48edeba2..603f4f2b96b 100644
--- a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/DbHandler.java
+++ b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/DbHandler.java
@@ -1,4 +1,4 @@
-package com.litongjava.tio.http.server.controller;
+package com.litongjava.tio.http.server.handler;
import java.util.ArrayList;
import java.util.Comparator;
diff --git a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/IndexHandler.java b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/IndexHandler.java
similarity index 55%
rename from frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/IndexHandler.java
rename to frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/IndexHandler.java
index 3dd0ba384b9..27047b7344f 100644
--- a/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/controller/IndexHandler.java
+++ b/frameworks/Java/tio-boot/src/main/java/com/litongjava/tio/http/server/handler/IndexHandler.java
@@ -1,38 +1,37 @@
-package com.litongjava.tio.http.server.controller;
+package com.litongjava.tio.http.server.handler;
import com.alibaba.fastjson2.JSON;
import com.litongjava.tio.boot.http.TioRequestContext;
-import com.litongjava.tio.http.common.HeaderName;
-import com.litongjava.tio.http.common.HeaderValue;
import com.litongjava.tio.http.common.HttpRequest;
import com.litongjava.tio.http.common.HttpResponse;
+import com.litongjava.tio.http.common.utils.MimeTypeUtils;
import com.litongjava.tio.http.server.model.Message;
-import com.litongjava.tio.http.server.util.Resps;
/**
* ab -k -n1000000 -c10 http://127.0.0.1:8080/json
* ab -k -n1000000 -c10 http://127.0.0.1:8080/plaintext
*/
public class IndexHandler {
+ private static final String HELLO_WORLD_RN = "Hello, World!\r\n";
+
private static final String HELLO_WORLD = "Hello, World!";
- private static final byte[] HELLO_WORLD_BYTES = HELLO_WORLD.getBytes();
-
- public HttpResponse index(HttpRequest request) {
- return Resps.txt(request, "tio-boot");
- }
+ private static final byte[] HELLO_WORLD_BYTES = HELLO_WORLD_RN.getBytes();
+ private static byte[] JSON_BYTES = JSON.toJSONBytes(new Message(HELLO_WORLD));
public HttpResponse plaintext(HttpRequest request) {
HttpResponse response = TioRequestContext.getResponse();
response.setBody(HELLO_WORLD_BYTES);
- response.addHeader(HeaderName.Content_Type, HeaderValue.Content_Type.TEXT_PLAIN_TXT);
+ String mimeTypeStr = MimeTypeUtils.getTextUTF8();
+ response.setContentType(mimeTypeStr);
return response;
}
public HttpResponse json(HttpRequest request) {
HttpResponse response = TioRequestContext.getResponse();
- response.setBody(JSON.toJSONBytes(new Message(HELLO_WORLD)));
- response.addHeader(HeaderName.Content_Type, HeaderValue.Content_Type.TEXT_PLAIN_JSON);
+ response.setBody(JSON_BYTES);
+ String mimeTypeStr = MimeTypeUtils.getJsonUTF8();
+ response.setContentType(mimeTypeStr);
return response;
}
}
\ No newline at end of file
diff --git a/frameworks/Java/tio-boot/src/main/resources/app.properties b/frameworks/Java/tio-boot/src/main/resources/app.properties
index 52083ea13ff..1c202a1c753 100644
--- a/frameworks/Java/tio-boot/src/main/resources/app.properties
+++ b/frameworks/Java/tio-boot/src/main/resources/app.properties
@@ -6,4 +6,6 @@ server.port=8080
JDBC_URL=jdbc:mysql://tfb-database/hello_world
JDBC_USER=benchmarkdbuser
-JDBC_PSWD=benchmarkdbpass
\ No newline at end of file
+JDBC_PSWD=benchmarkdbpass
+
+#--tio.core.diagnostic=true --server.http.request.printPacket=true
\ No newline at end of file
diff --git a/frameworks/PHP/openswoole/openswoole-no-async.dockerfile b/frameworks/PHP/openswoole/openswoole-no-async.dockerfile
index 98b24e1c497..73762687883 100644
--- a/frameworks/PHP/openswoole/openswoole-no-async.dockerfile
+++ b/frameworks/PHP/openswoole/openswoole-no-async.dockerfile
@@ -1,4 +1,4 @@
-FROM php:8.3-cli
+FROM php:8.4-cli
RUN apt-get update && apt-get install -y git > /dev/null
diff --git a/frameworks/PHP/openswoole/openswoole.dockerfile b/frameworks/PHP/openswoole/openswoole.dockerfile
index f4f57e78a2d..d9d89845e54 100644
--- a/frameworks/PHP/openswoole/openswoole.dockerfile
+++ b/frameworks/PHP/openswoole/openswoole.dockerfile
@@ -1,4 +1,4 @@
-FROM php:8.3-cli
+FROM php:8.4-cli
RUN apt-get update && apt-get install -y git > /dev/null
diff --git a/frameworks/PHP/phalcon/phalcon-micro.dockerfile b/frameworks/PHP/phalcon/phalcon-micro.dockerfile
index 31e405d1af6..8d1d0efd04d 100644
--- a/frameworks/PHP/phalcon/phalcon-micro.dockerfile
+++ b/frameworks/PHP/phalcon/phalcon-micro.dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:22.04
+FROM ubuntu:24.04
ARG DEBIAN_FRONTEND=noninteractive
@@ -6,21 +6,21 @@ RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /de
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
-RUN apt-get install -y php-pear php8.3-dev > /dev/null
-RUN mkdir -p /etc/php/8.3/fpm/conf.d
-RUN pecl install phalcon > /dev/null && echo "extension=phalcon.so" > /etc/php/8.3/fpm/conf.d/phalcon.ini
+RUN apt-get install -y php-pear php8.4-dev > /dev/null
+RUN mkdir -p /etc/php/8.4/fpm/conf.d
+RUN pecl install phalcon > /dev/null && echo "extension=phalcon.so" > /etc/php/8.4/fpm/conf.d/phalcon.ini
RUN apt-get install -yqq nginx git unzip \
- php8.3-cli php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml > /dev/null
+ php8.4-cli php8.4-fpm php8.4-mysql php8.4-mbstring php8.4-xml > /dev/null
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
-COPY deploy/conf/* /etc/php/8.3/fpm/
+COPY deploy/conf/* /etc/php/8.4/fpm/
ADD ./ /phalcon
WORKDIR /phalcon
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.3/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.4/fpm/php-fpm.conf ; fi;
RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --ignore-platform-reqs
@@ -30,5 +30,5 @@ RUN chmod -R 777 app
EXPOSE 8080
-CMD service php8.3-fpm start && \
+CMD service php8.4-fpm start && \
nginx -c /phalcon/deploy/nginx.conf
diff --git a/frameworks/PHP/phalcon/phalcon-mongodb.dockerfile b/frameworks/PHP/phalcon/phalcon-mongodb.dockerfile
index e545aa8a4ed..6a2dcceeb19 100644
--- a/frameworks/PHP/phalcon/phalcon-mongodb.dockerfile
+++ b/frameworks/PHP/phalcon/phalcon-mongodb.dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:22.04
+FROM ubuntu:24.04
ARG DEBIAN_FRONTEND=noninteractive
@@ -6,21 +6,21 @@ RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /de
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
-RUN apt-get install -y php-pear php8.3-dev > /dev/null
-RUN mkdir -p /etc/php/8.3/fpm/conf.d
-RUN pecl install phalcon > /dev/null && echo "extension=phalcon.so" > /etc/php/8.3/fpm/conf.d/phalcon.ini
+RUN apt-get install -y php-pear php8.4-dev > /dev/null
+RUN mkdir -p /etc/php/8.4/fpm/conf.d
+RUN pecl install phalcon > /dev/null && echo "extension=phalcon.so" > /etc/php/8.4/fpm/conf.d/phalcon.ini
RUN apt-get install -yqq nginx git unzip \
- php8.3-cli php8.3-fpm php8.3-mbstring php8.3-xml php8.3-mongodb > /dev/null
+ php8.4-cli php8.4-fpm php8.4-mbstring php8.4-xml php8.4-mongodb > /dev/null
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
-COPY deploy/conf/* /etc/php/8.3/fpm/
+COPY deploy/conf/* /etc/php/8.4/fpm/
ADD ./ /phalcon
WORKDIR /phalcon
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.3/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.4/fpm/php-fpm.conf ; fi;
RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --quiet --ignore-platform-reqs
@@ -30,5 +30,5 @@ RUN chmod -R 777 app
EXPOSE 8080
-CMD service php8.3-fpm start && \
+CMD service php8.4-fpm start && \
nginx -c /phalcon/deploy/nginx.conf
diff --git a/frameworks/PHP/phalcon/phalcon.dockerfile b/frameworks/PHP/phalcon/phalcon.dockerfile
index b07d5433f5f..1e872839d97 100644
--- a/frameworks/PHP/phalcon/phalcon.dockerfile
+++ b/frameworks/PHP/phalcon/phalcon.dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:22.04
+FROM ubuntu:24.04
ARG DEBIAN_FRONTEND=noninteractive
@@ -6,21 +6,21 @@ RUN apt-get update -yqq && apt-get install -yqq software-properties-common > /de
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php > /dev/null && \
apt-get update -yqq > /dev/null && apt-get upgrade -yqq > /dev/null
-RUN apt-get install -y php-pear php8.3-dev > /dev/null
-RUN mkdir -p /etc/php/8.3/fpm/conf.d
-RUN pecl install phalcon > /dev/null && echo "extension=phalcon.so" > /etc/php/8.3/fpm/conf.d/phalcon.ini
+RUN apt-get install -y php-pear php8.4-dev > /dev/null
+RUN mkdir -p /etc/php/8.4/fpm/conf.d
+RUN pecl install phalcon > /dev/null && echo "extension=phalcon.so" > /etc/php/8.4/fpm/conf.d/phalcon.ini
RUN apt-get install -yqq nginx git unzip \
- php8.3-cli php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml > /dev/null
+ php8.4-cli php8.4-fpm php8.4-mysql php8.4-mbstring php8.4-xml > /dev/null
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
-COPY deploy/conf/* /etc/php/8.3/fpm/
+COPY deploy/conf/* /etc/php/8.4/fpm/
ADD ./ /phalcon
WORKDIR /phalcon
-RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.3/fpm/php-fpm.conf ; fi;
+RUN if [ $(nproc) = 2 ]; then sed -i "s|pm.max_children = 1024|pm.max_children = 512|g" /etc/php/8.4/fpm/php-fpm.conf ; fi;
RUN composer install --optimize-autoloader --classmap-authoritative --no-dev --ignore-platform-reqs
@@ -28,5 +28,5 @@ RUN chmod -R 777 app
EXPOSE 8080
-CMD service php8.3-fpm start && \
+CMD service php8.4-fpm start && \
nginx -c /phalcon/deploy/nginx.conf
diff --git a/frameworks/Python/aiohttp/app/main.py b/frameworks/Python/aiohttp/app/main.py
index f334f2ca8a2..a4defbc20c6 100644
--- a/frameworks/Python/aiohttp/app/main.py
+++ b/frameworks/Python/aiohttp/app/main.py
@@ -49,10 +49,11 @@ def pg_dsn(dialect=None) -> str:
async def db_ctx(app: web.Application):
# number of gunicorn workers = multiprocessing.cpu_count() as per gunicorn_conf.py
# max_connections = 2000 as per toolset/setup/linux/databases/postgresql/postgresql.conf:64
- # give 10% leeway
- max_size = min(1800 / multiprocessing.cpu_count(), 160)
- max_size = max(int(max_size), 1)
- min_size = max(int(max_size / 2), 1)
+ # since the world table contains only 10,000 rows, a large connection pool is unnecessary
+ # the server hardware provides 56 CPU cores producing high concurrency
+ # https://wiki.postgresql.org/wiki/Number_Of_Database_Connections
+ max_size = 2
+ min_size = 2
print(f'connection pool: min size: {min_size}, max size: {max_size}, orm: {CONNECTION_ORM}')
if CONNECTION_ORM:
dsn = pg_dsn('asyncpg')
diff --git a/frameworks/Python/aiohttp/app/views.py b/frameworks/Python/aiohttp/app/views.py
index e52d4255744..91366d66eb7 100644
--- a/frameworks/Python/aiohttp/app/views.py
+++ b/frameworks/Python/aiohttp/app/views.py
@@ -27,6 +27,7 @@ def json_response(payload):
READ_SELECT_ORM = select(World.randomnumber).where(World.id == bindparam("id"))
READ_FORTUNES_ORM = select(Fortune.id, Fortune.message)
WRITE_ROW_SQL = 'UPDATE "world" SET "randomnumber"=$2 WHERE id=$1'
+WRITE_ROW_BATCH_SQL = 'UPDATE "world" w SET "randomnumber"=u.new_val FROM (SELECT unnest($1::int[]) as id, unnest($2::int[]) as new_val) u WHERE w.id = u.id'
template_path = Path(__file__).parent / 'templates' / 'fortune.jinja'
template = jinja2.Template(template_path.read_text())
@@ -155,15 +156,20 @@ async def updates_raw(request):
num_queries = get_num_queries(request)
update_ids = sample(range(1, 10001), num_queries)
update_ids.sort()
- fetch_params = tuple((i, ) for i in update_ids)
- updates = tuple(zip(update_ids, sample(range(1, 10001), num_queries)))
- worlds = [{'id': row_id, 'randomNumber': number} for row_id, number in updates]
+
+ numbers = sample(range(1, 10001), num_queries)
+ fetch_params = [(i,) for i in update_ids]
+ row_updates = [*zip(update_ids, numbers)]
async with request.app['pg'].acquire() as conn:
# the result of this is the int previous random number which we don't actually use
await conn.executemany(READ_ROW_SQL, fetch_params)
- await conn.executemany(WRITE_ROW_SQL, updates)
+ if num_queries <= 5:
+ await conn.executemany(WRITE_ROW_SQL, row_updates)
+ else:
+ await conn.execute(WRITE_ROW_BATCH_SQL, update_ids, numbers)
+ worlds = [{'id': row_id, 'randomNumber': number} for row_id, number in row_updates]
return json_response(worlds)
diff --git a/frameworks/Python/api_hour/requirements.txt b/frameworks/Python/api_hour/requirements.txt
index 8da47e213a8..c5edffe9b2d 100644
--- a/frameworks/Python/api_hour/requirements.txt
+++ b/frameworks/Python/api_hour/requirements.txt
@@ -11,7 +11,7 @@ MarkupSafe==0.23
piprot==0.9.1
psycopg2==2.7.5
PyYAML==5.4
-requests==2.32.0
+requests==2.32.4
requests-futures==0.9.5
setproctitle==1.1.8
ujson==1.33
diff --git a/frameworks/Python/blacksheep/app-socketify.py b/frameworks/Python/blacksheep/app-socketify.py
index 47ed2663804..a825b1596d0 100644
--- a/frameworks/Python/blacksheep/app-socketify.py
+++ b/frameworks/Python/blacksheep/app-socketify.py
@@ -13,8 +13,9 @@
WRITE_ROW_SQL = 'UPDATE "world" SET "randomnumber"=%s WHERE id=%s'
ADDITIONAL_ROW = [0, "Additional fortune added at request time."]
CORE_COUNT = multiprocessing.cpu_count()
+MAX_DB_CONNECTIONS = 2000
-MAX_POOL_SIZE = CORE_COUNT * 2
+MAX_POOL_SIZE = min(CORE_COUNT * 2, MAX_DB_CONNECTIONS // CORE_COUNT, 32)
MIN_POOL_SIZE = max(1, MAX_POOL_SIZE // 2)
db_pool = None
diff --git a/frameworks/Ruby/rack-sequel/Gemfile b/frameworks/Ruby/rack-sequel/Gemfile
index ed430b9168b..afb68002dc2 100644
--- a/frameworks/Ruby/rack-sequel/Gemfile
+++ b/frameworks/Ruby/rack-sequel/Gemfile
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
gem 'json', '~> 2.8'
gem 'sequel', '~> 5.0'
-gem 'rack', '~> 3.0'
+gem 'rack', '~> 3.1'
group :mysql, optional: true do
gem 'mysql2', '~> 0.4', platforms: [:ruby, :mswin]
diff --git a/frameworks/Ruby/rack-sequel/Gemfile.lock b/frameworks/Ruby/rack-sequel/Gemfile.lock
index 8c7db9aaa00..8b3ff5d109d 100644
--- a/frameworks/Ruby/rack-sequel/Gemfile.lock
+++ b/frameworks/Ruby/rack-sequel/Gemfile.lock
@@ -8,7 +8,7 @@ GEM
pg (1.5.9)
puma (6.6.0)
nio4r (~> 2.0)
- rack (3.1.11)
+ rack (3.1.16)
sequel (5.90.0)
bigdecimal
sequel_pg (1.17.1)
@@ -25,7 +25,7 @@ DEPENDENCIES
mysql2 (~> 0.4)
pg (~> 1.5)
puma (~> 6.5)
- rack (~> 3.0)
+ rack (~> 3.1)
sequel (~> 5.0)
sequel_pg (~> 1.6)
diff --git a/frameworks/Rust/hyperlane/Cargo.lock b/frameworks/Rust/hyperlane/Cargo.lock
index a0d3e927e05..4b1dd261d27 100644
--- a/frameworks/Rust/hyperlane/Cargo.lock
+++ b/frameworks/Rust/hyperlane/Cargo.lock
@@ -2,6 +2,182 @@
# It is not intended for manual editing.
version = 4
+[[package]]
+name = "actix-codec"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a"
+dependencies = [
+ "bitflags",
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "memchr",
+ "pin-project-lite",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "actix-http"
+version = "3.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2"
+dependencies = [
+ "actix-codec",
+ "actix-rt",
+ "actix-service",
+ "actix-utils",
+ "base64",
+ "bitflags",
+ "bytes",
+ "bytestring",
+ "derive_more",
+ "encoding_rs",
+ "foldhash",
+ "futures-core",
+ "http",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "language-tags",
+ "local-channel",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rand 0.9.1",
+ "sha1",
+ "smallvec",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "actix-macros"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
+dependencies = [
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "actix-router"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13d324164c51f63867b57e73ba5936ea151b8a41a1d23d1031eeb9f70d0236f8"
+dependencies = [
+ "bytestring",
+ "cfg-if",
+ "http",
+ "regex-lite",
+ "serde",
+ "tracing",
+]
+
+[[package]]
+name = "actix-rt"
+version = "2.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208"
+dependencies = [
+ "futures-core",
+ "tokio",
+]
+
+[[package]]
+name = "actix-server"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502"
+dependencies = [
+ "actix-rt",
+ "actix-service",
+ "actix-utils",
+ "futures-core",
+ "futures-util",
+ "mio",
+ "socket2",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "actix-service"
+version = "2.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "actix-utils"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
+dependencies = [
+ "local-waker",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "actix-web"
+version = "4.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a597b77b5c6d6a1e1097fddde329a83665e25c5437c696a3a9a4aa514a614dea"
+dependencies = [
+ "actix-codec",
+ "actix-http",
+ "actix-macros",
+ "actix-router",
+ "actix-rt",
+ "actix-server",
+ "actix-service",
+ "actix-utils",
+ "actix-web-codegen",
+ "bytes",
+ "bytestring",
+ "cfg-if",
+ "derive_more",
+ "encoding_rs",
+ "foldhash",
+ "futures-core",
+ "futures-util",
+ "impl-more",
+ "itoa",
+ "language-tags",
+ "log",
+ "mime",
+ "once_cell",
+ "pin-project-lite",
+ "regex-lite",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "smallvec",
+ "socket2",
+ "time",
+ "tracing",
+ "url",
+]
+
+[[package]]
+name = "actix-web-codegen"
+version = "4.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f591380e2e68490b5dfaf1dd1aa0ebe78d84ba7067078512b4ea6e4492d622b8"
+dependencies = [
+ "actix-router",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "addr2line"
version = "0.24.2"
@@ -13,9 +189,9 @@ dependencies = [
[[package]]
name = "adler2"
-version = "2.0.0"
+version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
[[package]]
name = "ahash"
@@ -30,6 +206,15 @@ dependencies = [
"zerocopy",
]
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
[[package]]
name = "alloc-no-stdlib"
version = "2.0.4"
@@ -51,6 +236,15 @@ version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
+[[package]]
+name = "arbitrary"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223"
+dependencies = [
+ "derive_arbitrary",
+]
+
[[package]]
name = "atoi"
version = "2.0.0"
@@ -89,9 +283,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]]
name = "base64ct"
-version = "1.7.3"
+version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3"
+checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba"
[[package]]
name = "bin-encode-decode"
@@ -140,9 +334,9 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.17.0"
+version = "3.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf"
+checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee"
[[package]]
name = "byteorder"
@@ -156,17 +350,26 @@ version = "1.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
+[[package]]
+name = "bytestring"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e465647ae23b2823b0753f50decb2d5a86d2bb2cac04788fafd1f80e45378e5f"
+dependencies = [
+ "bytes",
+]
+
[[package]]
name = "cfg-if"
-version = "1.0.0"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268"
[[package]]
name = "chunkify"
-version = "0.6.2"
+version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5db978867c272fae07fdf73dddfa74c8e276f9b94cd1a55c676a786e9e54e678"
+checksum = "97b2709f42d3cc45eda703223726b05afd42c36f2642e2d292deee1c31b86c69"
dependencies = [
"dashmap",
"file-operation",
@@ -177,9 +380,9 @@ dependencies = [
[[package]]
name = "clonelicious"
-version = "2.0.3"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7d51b119ca46e37c21508debf8d9823521be05a70e32ee5afc7695ae1cfb4ec"
+checksum = "fd646e01c20889af081dc20be3aeea14aaaeb87f60f68799483ad716baa33020"
[[package]]
name = "color-output"
@@ -294,6 +497,47 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "deranged"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "derive_arbitrary"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "derive_more"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "unicode-xid",
+]
+
[[package]]
name = "digest"
version = "0.10.7"
@@ -332,6 +576,15 @@ dependencies = [
"serde",
]
+[[package]]
+name = "encoding_rs"
+version = "0.8.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"
+dependencies = [
+ "cfg-if",
+]
+
[[package]]
name = "equivalent"
version = "1.0.2"
@@ -371,11 +624,12 @@ dependencies = [
[[package]]
name = "flate2"
-version = "1.1.1"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece"
+checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
dependencies = [
"crc32fast",
+ "libz-rs-sys",
"miniz_oxide",
]
@@ -399,6 +653,12 @@ dependencies = [
"spin",
]
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
[[package]]
name = "foldhash"
version = "0.1.5"
@@ -416,9 +676,9 @@ dependencies = [
[[package]]
name = "future-fn"
-version = "0.2.5"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61a60fa5df978d3b02f58da08ae2e47d2bb8b19f765a693eaa9e5e8045b3925d"
+checksum = "472364b0e6f990c5d86b3fb5d99003898ae88af155b82575d6ca67ef554a9426"
[[package]]
name = "futures"
@@ -567,7 +827,7 @@ version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa2c385c6df70fd180bbb673d93039dbd2cd34e41d782600bdf6e1ca7bce39aa"
dependencies = [
- "hashbrown 0.15.3",
+ "hashbrown 0.15.4",
"serde",
]
@@ -579,9 +839,9 @@ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "hashbrown"
-version = "0.15.3"
+version = "0.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3"
+checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5"
dependencies = [
"allocator-api2",
"equivalent",
@@ -594,7 +854,7 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
dependencies = [
- "hashbrown 0.15.3",
+ "hashbrown 0.15.4",
]
[[package]]
@@ -605,9 +865,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
-version = "0.3.9"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08"
[[package]]
name = "hex"
@@ -642,6 +902,23 @@ dependencies = [
"windows-sys 0.59.0",
]
+[[package]]
+name = "hot-restart"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a35c1ce67dc1d078f54ea1ed5293a49f11d63ff3a03b71c046319c31c9e4d243"
+
+[[package]]
+name = "http"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
[[package]]
name = "http-compress"
version = "2.13.5"
@@ -655,15 +932,15 @@ dependencies = [
[[package]]
name = "http-constant"
-version = "1.43.0"
+version = "1.47.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c206e4f9a9bc18a40b387ffdfee9b1204fb692da1eee32d35b6fa9f07447d960"
+checksum = "ebb606af516873026d106412e1f2e3e4ca5d72d5ac1ff97d66169c5bc88eef91"
[[package]]
name = "http-type"
-version = "4.7.0"
+version = "4.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1323e4bed6c8f56bc77fdba9141121568cd1fb399ad48fea92919a85c5601e9"
+checksum = "c58eb9dcf3a7358d389f79229c64ef0d999199b238dabfb5737e831430effcad"
dependencies = [
"dashmap",
"hex",
@@ -674,45 +951,67 @@ dependencies = [
"serde-xml-rs",
"serde_json",
"serde_urlencoded",
- "std-macro-extensions",
"tokio",
"url",
]
+[[package]]
+name = "httparse"
+version = "1.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
[[package]]
name = "hyperlane"
-version = "5.8.0"
+version = "5.29.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61cb0781fcf47dc16788eb0b35854de2bc7a7d55432abf89d78f52b9fa2e5117"
+checksum = "928a96f22386c7101f2902beedb5856a8d298938670c370c1306c0f574f5d66d"
dependencies = [
"http-type",
+ "hyperlane-macros",
"lombok-macros",
+ "regex",
"serde",
]
[[package]]
name = "hyperlane-broadcast"
-version = "0.5.0"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d10d26d30398580d6e5535a1f706507aeaa069a30f9959b5299dc066a112a396"
+checksum = "7764d7256c4a54e929d2d82176108a718b2493ec982b353e382971b1fa02707e"
dependencies = [
"dashmap",
- "lombok-macros",
"tokio",
]
[[package]]
name = "hyperlane-log"
-version = "1.16.9"
+version = "1.17.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e822ed456ed2b07e3d038ed2275cabcce56651110bebb20c7d3fd699ce5c4602"
+checksum = "b2a07f72a789eaed32a981cd3f60c5ca10643e23ba7cfb715a9a835cb58cc5d4"
dependencies = [
"file-operation",
"hyperlane-time",
- "lombok-macros",
"tokio",
]
+[[package]]
+name = "hyperlane-macros"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b7fcc6733516b988a4d09e02aa61af142341ce937894f4a93f39d71355be69cd"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
[[package]]
name = "hyperlane-time"
version = "0.5.5"
@@ -721,9 +1020,9 @@ checksum = "c145707425cdd097e117e8b4ee8baeaf8eb265658a5c37d2c4aa0b24fd26a507"
[[package]]
name = "hyperlane-utils"
-version = "0.5.0"
+version = "0.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435663d62a9b1cc9f41fa8d89448f8eae8bfe68016b3cefd8106526d3fd59993"
+checksum = "ebe33ccb4333deb4f3bb5f101cdc944dc04a7e238e78934e4162029dfc33ef84"
dependencies = [
"ahash",
"bin-encode-decode",
@@ -735,6 +1034,7 @@ dependencies = [
"future-fn",
"futures",
"hex",
+ "hot-restart",
"hyperlane-broadcast",
"hyperlane-log",
"log",
@@ -749,9 +1049,13 @@ dependencies = [
"serde_urlencoded",
"server-manager",
"simd-json",
+ "std-macro-extensions",
"twox-hash",
"url",
"urlencoding",
+ "utoipa",
+ "utoipa-rapidoc",
+ "utoipa-swagger-ui",
]
[[package]]
@@ -872,6 +1176,12 @@ dependencies = [
"icu_properties",
]
+[[package]]
+name = "impl-more"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2"
+
[[package]]
name = "indexmap"
version = "2.9.0"
@@ -879,7 +1189,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e"
dependencies = [
"equivalent",
- "hashbrown 0.15.3",
+ "hashbrown 0.15.4",
+ "serde",
]
[[package]]
@@ -898,6 +1209,12 @@ dependencies = [
"wasm-bindgen",
]
+[[package]]
+name = "language-tags"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
+
[[package]]
name = "lazy_static"
version = "1.5.0"
@@ -929,17 +1246,43 @@ dependencies = [
"vcpkg",
]
+[[package]]
+name = "libz-rs-sys"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "172a788537a2221661b480fee8dc5f96c580eb34fa88764d3205dc356c7e4221"
+dependencies = [
+ "zlib-rs",
+]
+
[[package]]
name = "litemap"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
+[[package]]
+name = "local-channel"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6cbc85e69b8df4b8bb8b89ec634e7189099cea8927a276b7384ce5488e53ec8"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+ "local-waker",
+]
+
+[[package]]
+name = "local-waker"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d873d7c67ce09b42110d801813efbc9364414e356be9935700d368351657487"
+
[[package]]
name = "lock_api"
-version = "0.4.12"
+version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
dependencies = [
"autocfg",
"scopeguard",
@@ -953,9 +1296,9 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
[[package]]
name = "lombok-macros"
-version = "1.11.4"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10cee2ce690915c2b491c9ea0d2d8e3daa3e30bcc55cc15fd9297b2566c4522e"
+checksum = "8233f6e95093f205641478acbae36ebed40d71f6e89329ce92c0d3345aeb15a0"
dependencies = [
"proc-macro2",
"quote",
@@ -978,11 +1321,27 @@ version = "2.7.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
[[package]]
name = "miniz_oxide"
-version = "0.8.8"
+version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a"
+checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
dependencies = [
"adler2",
]
@@ -994,6 +1353,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
dependencies = [
"libc",
+ "log",
"wasi 0.11.0+wasi-snapshot-preview1",
"windows-sys 0.59.0",
]
@@ -1015,6 +1375,12 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
[[package]]
name = "num-integer"
version = "0.1.46"
@@ -1047,9 +1413,9 @@ dependencies = [
[[package]]
name = "num_cpus"
-version = "1.16.0"
+version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
dependencies = [
"hermit-abi",
"libc",
@@ -1078,9 +1444,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
[[package]]
name = "parking_lot"
-version = "0.12.3"
+version = "0.12.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
dependencies = [
"lock_api",
"parking_lot_core",
@@ -1088,9 +1454,9 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.10"
+version = "0.9.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
dependencies = [
"cfg-if",
"libc",
@@ -1162,6 +1528,12 @@ dependencies = [
"zerovec",
]
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
[[package]]
name = "ppv-lite86"
version = "0.2.21"
@@ -1266,11 +1638,10 @@ dependencies = [
[[package]]
name = "recoverable-thread-pool"
-version = "2.3.7"
+version = "2.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47914cafb04d7ac1e20031c17f7831c282d7ed730c86be0480c4db6347b339c5"
+checksum = "61323b7a7b470393e0a2ef3383ac50c2e19012b4aacea1101051a7cf8dc593fc"
dependencies = [
- "lombok-macros",
"recoverable-spawn",
"tokio",
]
@@ -1304,6 +1675,41 @@ dependencies = [
"syn",
]
+[[package]]
+name = "regex"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-lite"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
+
[[package]]
name = "rsa"
version = "0.9.8"
@@ -1324,6 +1730,40 @@ dependencies = [
"zeroize",
]
+[[package]]
+name = "rust-embed"
+version = "8.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "025908b8682a26ba8d12f6f2d66b987584a4a87bc024abc5bbc12553a8cd178a"
+dependencies = [
+ "rust-embed-impl",
+ "rust-embed-utils",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-impl"
+version = "8.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6065f1a4392b71819ec1ea1df1120673418bf386f50de1d6f54204d836d4349c"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "rust-embed-utils",
+ "syn",
+ "walkdir",
+]
+
+[[package]]
+name = "rust-embed-utils"
+version = "8.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6cc0c81648b20b70c491ff8cce00c1c3b223bb8ed2b5d41f0e54c6c4c0a3594"
+dependencies = [
+ "sha2",
+ "walkdir",
+]
+
[[package]]
name = "rustc-demangle"
version = "0.1.24"
@@ -1336,6 +1776,15 @@ version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
[[package]]
name = "scopeguard"
version = "1.2.0"
@@ -1353,9 +1802,9 @@ dependencies = [
[[package]]
name = "serde-xml-rs"
-version = "0.8.0"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "176b7ff880ab6ead7a020e773e9c096467fe347615a3e22ac29300cbdef67a5d"
+checksum = "53630160a98edebde0123eb4dfd0fce6adff091b2305db3154a9e920206eb510"
dependencies = [
"log",
"serde",
@@ -1400,9 +1849,9 @@ dependencies = [
[[package]]
name = "server-manager"
-version = "3.2.4"
+version = "3.4.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6936d74a2263590ed722bdf27315b693b8a84a5dffdb3b47a9b7c0a7b50396b"
+checksum = "44ef1cee6952595d4726b88ffbb1535f123955c0af5c2dbf508c643efc684c94"
dependencies = [
"tokio",
]
@@ -1448,6 +1897,12 @@ dependencies = [
"rand_core 0.6.4",
]
+[[package]]
+name = "simd-adler32"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+
[[package]]
name = "simd-json"
version = "0.15.1"
@@ -1480,9 +1935,9 @@ dependencies = [
[[package]]
name = "smallvec"
-version = "1.15.0"
+version = "1.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9"
+checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
dependencies = [
"serde",
]
@@ -1545,7 +2000,7 @@ dependencies = [
"futures-intrusive",
"futures-io",
"futures-util",
- "hashbrown 0.15.3",
+ "hashbrown 0.15.4",
"hashlink",
"indexmap",
"log",
@@ -1712,9 +2167,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
name = "std-macro-extensions"
-version = "0.23.2"
+version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa17898d2c4216a85ad32abd51101b6eab0adef954ed1393c4557ba378625ade"
+checksum = "a35e64ebd4e130e82fbcd036b66007e97ab95803080c51286cf6ec5cf9c7d546"
[[package]]
name = "stringprep"
@@ -1795,6 +2250,37 @@ dependencies = [
"syn",
]
+[[package]]
+name = "time"
+version = "0.3.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c"
+
+[[package]]
+name = "time-macros"
+version = "0.2.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
[[package]]
name = "tinystr"
version = "0.8.1"
@@ -1860,6 +2346,19 @@ dependencies = [
"tokio",
]
+[[package]]
+name = "tokio-util"
+version = "0.7.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+]
+
[[package]]
name = "tracing"
version = "0.1.41"
@@ -1874,9 +2373,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.28"
+version = "0.1.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
+checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662"
dependencies = [
"proc-macro2",
"quote",
@@ -1885,20 +2384,20 @@ dependencies = [
[[package]]
name = "tracing-core"
-version = "0.1.33"
+version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c"
+checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
dependencies = [
"once_cell",
]
[[package]]
name = "twox-hash"
-version = "2.1.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908"
+checksum = "8b907da542cbced5261bd3256de1b3a1bf340a3d37f93425a07362a1d687de56"
dependencies = [
- "rand 0.8.5",
+ "rand 0.9.1",
]
[[package]]
@@ -1907,6 +2406,12 @@ version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
+[[package]]
+name = "unicase"
+version = "2.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
+
[[package]]
name = "unicode-bidi"
version = "0.3.18"
@@ -1934,6 +2439,12 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0"
+[[package]]
+name = "unicode-xid"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
+
[[package]]
name = "url"
version = "2.5.4"
@@ -1957,6 +2468,66 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
+[[package]]
+name = "utoipa"
+version = "5.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435c6f69ef38c9017b4b4eea965dfb91e71e53d869e896db40d1cf2441dd75c0"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_json",
+ "utoipa-gen",
+]
+
+[[package]]
+name = "utoipa-gen"
+version = "5.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a77d306bc75294fd52f3e99b13ece67c02c1a2789190a6f31d32f736624326f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "utoipa-rapidoc"
+version = "6.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5f8f5abd341cce16bb4f09a8bafc087d4884a004f25fb980e538d51d6501dab"
+dependencies = [
+ "actix-web",
+ "serde",
+ "serde_json",
+ "utoipa",
+]
+
+[[package]]
+name = "utoipa-swagger-ui"
+version = "9.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d047458f1b5b65237c2f6dc6db136945667f40a7668627b3490b9513a3d43a55"
+dependencies = [
+ "actix-web",
+ "base64",
+ "mime_guess",
+ "regex",
+ "rust-embed",
+ "serde",
+ "serde_json",
+ "url",
+ "utoipa",
+ "utoipa-swagger-ui-vendored",
+ "zip",
+]
+
+[[package]]
+name = "utoipa-swagger-ui-vendored"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2eebbbfe4093922c2b6734d7c679ebfebd704a0d7e56dfcb0d05818ce28977d"
+
[[package]]
name = "value-trait"
version = "0.11.0"
@@ -1981,6 +2552,16 @@ version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
@@ -2069,6 +2650,15 @@ dependencies = [
"wasite",
]
+[[package]]
+name = "winapi-util"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
[[package]]
name = "windows-sys"
version = "0.48.0"
@@ -2341,3 +2931,35 @@ dependencies = [
"quote",
"syn",
]
+
+[[package]]
+name = "zip"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12598812502ed0105f607f941c386f43d441e00148fce9dec3ca5ffb0bde9308"
+dependencies = [
+ "arbitrary",
+ "crc32fast",
+ "flate2",
+ "indexmap",
+ "memchr",
+ "zopfli",
+]
+
+[[package]]
+name = "zlib-rs"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "626bd9fa9734751fc50d6060752170984d7053f5a39061f524cda68023d4db8a"
+
+[[package]]
+name = "zopfli"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7"
+dependencies = [
+ "bumpalo",
+ "crc32fast",
+ "log",
+ "simd-adler32",
+]
diff --git a/frameworks/Rust/hyperlane/Cargo.toml b/frameworks/Rust/hyperlane/Cargo.toml
index 96514f0046a..c01d0687a19 100644
--- a/frameworks/Rust/hyperlane/Cargo.toml
+++ b/frameworks/Rust/hyperlane/Cargo.toml
@@ -18,8 +18,8 @@ exclude = [
]
[dependencies]
-hyperlane = "5.8.0"
-hyperlane-utils = "0.5.0"
+hyperlane = "5.29.0"
+hyperlane-utils = "0.17.1"
rand = "0.9.1"
serde = "1.0.219"
sqlx = { version = "0.8.6", features = ["runtime-tokio", "postgres"] }
diff --git a/frameworks/Rust/hyperlane/src/request_middleware.rs b/frameworks/Rust/hyperlane/src/request_middleware.rs
index 2550aa4b5fe..2c598f982b2 100644
--- a/frameworks/Rust/hyperlane/src/request_middleware.rs
+++ b/frameworks/Rust/hyperlane/src/request_middleware.rs
@@ -1,11 +1,13 @@
use super::*;
pub async fn request(ctx: Context) {
- ctx.set_response_header(CONNECTION, CONNECTION_KEEP_ALIVE)
+ ctx.set_response_header(CONNECTION, KEEP_ALIVE)
.await
.set_response_header(SERVER, HYPERLANE)
.await
.set_response_header(DATE, gmt())
+ .await
+ .set_response_status_code(200)
.await;
#[cfg(feature = "plaintext")]
{
diff --git a/frameworks/Rust/hyperlane/src/route.rs b/frameworks/Rust/hyperlane/src/route.rs
index 46442ce2137..1eaa40d61d7 100644
--- a/frameworks/Rust/hyperlane/src/route.rs
+++ b/frameworks/Rust/hyperlane/src/route.rs
@@ -5,19 +5,23 @@ pub async fn json(ctx: Context) {
"message": RESPONSEDATA_STR
});
let _ = ctx
- .send_response(200, serde_json::to_string(&json).unwrap_or_default())
+ .set_response_body(serde_json::to_string(&json).unwrap_or_default())
+ .await
+ .send()
.await;
}
pub async fn plaintext(ctx: Context) {
- let _ = ctx.send_response(200, RESPONSEDATA_BIN).await;
+ let _ = ctx.set_response_body(RESPONSEDATA_BIN).await.send().await;
}
pub async fn db(ctx: Context) {
let db_connection: &DbPoolConnection = get_db_connection();
let query_row: QueryRow = random_world_row(db_connection).await;
let _ = ctx
- .send_response(200, serde_json::to_string(&query_row).unwrap_or_default())
+ .set_response_body(serde_json::to_string(&query_row).unwrap_or_default())
+ .await
+ .send()
.await;
}
@@ -32,7 +36,9 @@ pub async fn query(ctx: Context) {
let db_pool: &DbPoolConnection = get_db_connection();
let data: Vec = get_some_row_id(queries, db_pool).await;
let _ = ctx
- .send_response(200, serde_json::to_string(&data).unwrap_or_default())
+ .set_response_body(serde_json::to_string(&data).unwrap_or_default())
+ .await
+ .send()
.await;
}
@@ -52,7 +58,7 @@ pub async fn fortunes(ctx: Context) {
));
fortunes_list.sort_by(|it, next| it.message.cmp(&next.message));
let res: String = FortunesTemplate::new(fortunes_list).to_string();
- let _ = ctx.send_response(200, res).await;
+ let _ = ctx.set_response_body(res).await.send().await;
}
pub async fn update(ctx: Context) {
@@ -65,7 +71,9 @@ pub async fn update(ctx: Context) {
.max(1);
let res: Vec = update_world_rows(queries).await;
let _ = ctx
- .send_response(200, serde_json::to_string(&res).unwrap_or_default())
+ .set_response_body(serde_json::to_string(&res).unwrap_or_default())
+ .await
+ .send()
.await;
}
@@ -79,6 +87,8 @@ pub async fn cached_query(ctx: Context) {
.max(1);
let res: Vec = CACHE.iter().take(count as usize).cloned().collect();
let _ = ctx
- .send_response(200, serde_json::to_string(&res).unwrap_or_default())
+ .set_response_body(serde_json::to_string(&res).unwrap_or_default())
+ .await
+ .send()
.await;
}
diff --git a/frameworks/Rust/hyperlane/src/server.rs b/frameworks/Rust/hyperlane/src/server.rs
index 5e17c60d4ed..9a9cf7544e4 100644
--- a/frameworks/Rust/hyperlane/src/server.rs
+++ b/frameworks/Rust/hyperlane/src/server.rs
@@ -17,9 +17,9 @@ async fn init_server() {
server.port(8080).await;
server.disable_linger().await;
server.disable_nodelay().await;
- server.error_handle(|_: String| {}).await;
+ server.error_handler(|_: String| {}).await;
server.http_line_buffer_size(256).await;
- server.websocket_buffer_size(256).await;
+ server.ws_buffer_size(256).await;
server.request_middleware(request_middleware::request).await;
#[cfg(any(feature = "dev", feature = "plaintext"))]
server.route("/plaintext", route::plaintext).await;