diff --git a/frameworks/C++/lithium/compile_libpq.sh b/frameworks/C++/lithium/compile_libpq.sh
index c47a3512924..08f682d93e4 100755
--- a/frameworks/C++/lithium/compile_libpq.sh
+++ b/frameworks/C++/lithium/compile_libpq.sh
@@ -1,14 +1,20 @@
#! /bin/sh
# Compile libpq
-commit=b787d4ce6d910080065025bcd5f968544997271f
-wget -nv https://github.com/postgres/postgres/archive/$commit.zip
-unzip -q $commit.zip
-cd postgres-$commit
-if [ "$1" = "batchmode" ]; then
+
+if [ "$1" = "batchmode_patch" ]; then
+ commit=b787d4ce6d910080065025bcd5f968544997271f
+ wget -nv https://github.com/postgres/postgres/archive/$commit.zip
+ unzip -q $commit.zip
+ cd postgres-$commit
wget -nv https://www.postgresql.org/message-id/attachment/115223/v22-0001-libpq-batch.patch
git apply ./v22-0001-libpq-batch.patch
+else
+ commit=7f7f25f15edb6eacec58179ef5285e874aa4435b
+ wget -nv https://github.com/postgres/postgres/archive/$commit.zip
+ unzip -q $commit.zip
+ cd postgres-$commit
fi
./configure --prefix=/usr CFLAGS='-O3 -march=native -flto'
diff --git a/frameworks/C++/lithium/lithium-postgres-batch-beta.dockerfile b/frameworks/C++/lithium/lithium-postgres-batch-beta.dockerfile
index a3ff0b916d2..c24ac39ce61 100644
--- a/frameworks/C++/lithium/lithium-postgres-batch-beta.dockerfile
+++ b/frameworks/C++/lithium/lithium-postgres-batch-beta.dockerfile
@@ -7,7 +7,7 @@ RUN apt-get install -yqq bison flex
COPY ./ ./
-RUN ./compile_libpq.sh batchmode
+RUN ./compile_libpq.sh
ENV LD_LIBRARY_PATH=/usr/lib
-CMD ./compile-batch.sh TFB_PGSQL 16b3f43a2b292e5349b7b528fa9410b3239c15cb
+CMD ./compile-batch.sh TFB_PGSQL 78ccb291a94679bf567ece2428d2763d80fc0029
diff --git a/frameworks/C++/lithium/lithium-postgres-batch.dockerfile b/frameworks/C++/lithium/lithium-postgres-batch.dockerfile
index 61130fbb328..13fcd46dfb4 100644
--- a/frameworks/C++/lithium/lithium-postgres-batch.dockerfile
+++ b/frameworks/C++/lithium/lithium-postgres-batch.dockerfile
@@ -6,7 +6,7 @@ RUN apt-get install -yqq bison flex
COPY ./ ./
-RUN ./compile_libpq.sh batchmode
+RUN ./compile_libpq.sh batchmode_patch
ENV LD_LIBRARY_PATH=/usr/lib
EXPOSE 8080
diff --git a/frameworks/CFML/CFML/benchmark_config.json b/frameworks/CFML/CFML/benchmark_config.json
index 3f310847af9..11c39d60ba6 100644
--- a/frameworks/CFML/CFML/benchmark_config.json
+++ b/frameworks/CFML/CFML/benchmark_config.json
@@ -14,7 +14,7 @@
"approach": "Realistic",
"classification": "Platform",
"database": "Postgres",
- "framework": "None",
+ "framework": "CFML",
"language": "CFML",
"flavor": "None",
"orm": "raw",
@@ -38,7 +38,7 @@
"approach": "Realistic",
"classification": "Platform",
"database": "Postgres",
- "framework": "None",
+ "framework": "CFML",
"language": "CFML",
"flavor": "None",
"orm": "raw",
diff --git a/frameworks/CSharp/aspnetcore-corert/PlatformBenchmarks/PlatformBenchmarks.csproj b/frameworks/CSharp/aspnetcore-corert/PlatformBenchmarks/PlatformBenchmarks.csproj
index 1410e71ba51..9348c95e350 100644
--- a/frameworks/CSharp/aspnetcore-corert/PlatformBenchmarks/PlatformBenchmarks.csproj
+++ b/frameworks/CSharp/aspnetcore-corert/PlatformBenchmarks/PlatformBenchmarks.csproj
@@ -8,6 +8,7 @@
link
false
+ Speed
@@ -20,6 +21,6 @@
-
+
diff --git a/frameworks/CSharp/aspnetcore/config.toml b/frameworks/CSharp/aspnetcore/config.toml
index 79c953c25f6..3362e95804d 100644
--- a/frameworks/CSharp/aspnetcore/config.toml
+++ b/frameworks/CSharp/aspnetcore/config.toml
@@ -1,19 +1,6 @@
[framework]
name = "aspnetcore"
-[pgo]
-urls.plaintext = "/plaintext"
-urls.json = "/json"
-approach = "Stripped"
-classification = "Platform"
-database = "None"
-database_os = "Linux"
-os = "Linux"
-orm = "Raw"
-platform = ".NET"
-webserver = "Kestrel"
-versus = "aspcore"
-
[ado-pg]
urls.db = "/db"
urls.query = "/queries/"
@@ -69,18 +56,6 @@ platform = ".NET"
webserver = "Kestrel"
versus = "aspcore"
-[pgo-pg-up]
-urls.update = "/updates/"
-approach = "Stripped"
-classification = "Platform"
-database = "Postgres"
-database_os = "Linux"
-os = "Linux"
-orm = "Raw"
-platform = ".NET"
-webserver = "Kestrel"
-versus = "aspcore-ado-pg-up"
-
[mvc]
urls.plaintext = "/mvc/plaintext"
urls.json = "/mvc/json"
@@ -246,21 +221,6 @@ platform = ".NET"
webserver = "Kestrel"
versus = "aspcore-ado-pg"
-[pgo-pg]
-urls.db = "/db"
-urls.query = "/queries/"
-urls.fortune = "/fortunes"
-urls.cached_query = "/cached-worlds/"
-approach = "Stripped"
-classification = "Platform"
-database = "Postgres"
-database_os = "Linux"
-os = "Linux"
-orm = "Raw"
-platform = ".NET"
-webserver = "Kestrel"
-versus = "aspcore-ado-pg"
-
[mvc-ef-pg-up]
urls.update = "/mvc/updates/ef?queries="
approach = "Realistic"
diff --git a/frameworks/CSharp/ben/benchmark_config.json b/frameworks/CSharp/ben/benchmark_config.json
index e26d164c28c..8081f86b5a1 100644
--- a/frameworks/CSharp/ben/benchmark_config.json
+++ b/frameworks/CSharp/ben/benchmark_config.json
@@ -10,7 +10,7 @@
"approach": "Realistic",
"classification": "Micro",
"database": "Postgres",
- "framework": "ASP.NET Core",
+ "framework": "Ben",
"language": "C#",
"orm": "micro",
"platform": ".NET",
@@ -18,7 +18,7 @@
"webserver": "Kestrel",
"os": "Linux",
"database_os": "Linux",
- "display_name": "ASP.NET Core",
+ "display_name": "Ben",
"notes": "",
"versus": "aspcore"
}
diff --git a/frameworks/Java/activej/pom.xml b/frameworks/Java/activej/pom.xml
index e75739b56c0..6fce5102f37 100755
--- a/frameworks/Java/activej/pom.xml
+++ b/frameworks/Java/activej/pom.xml
@@ -46,7 +46,7 @@
io.activej
activej-launchers-http
- 4.0
+ 4.1
com.dslplatform
diff --git a/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/HelloWorldObject.java b/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/HelloWorldObject.java
index a0dfb498431..af94719326d 100644
--- a/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/HelloWorldObject.java
+++ b/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/HelloWorldObject.java
@@ -1,5 +1,8 @@
package io.activej.http.benchmark;
+import com.dslplatform.json.CompiledJson;
+
+@CompiledJson
public final class HelloWorldObject {
private final String message;
diff --git a/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/Main.java b/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/Main.java
index 4ce3560d5a2..ccfe6692dbd 100644
--- a/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/Main.java
+++ b/frameworks/Java/activej/src/main/java/io/activej/http/benchmark/Main.java
@@ -84,7 +84,7 @@ AsyncServlet jsonServlet(JsonWriter writer) {
return Promise.ofException(HttpError.ofCode(400, "Failed to serialize JSON", e));
}
return HttpResponse.ok200()
- .withBody(ByteBuf.wrapForReading(writer.toByteArray()))
+ .withBody(ByteBuf.wrap(writer.getByteBuffer(), 0, writer.size()))
.withHeader(HttpHeaders.CONTENT_TYPE, JSON_CONTENT_TYPE_HEADER_VALUE)
.withHeader(HttpHeaders.SERVER, SERVER_HEADER_VALUE)
.withHeader(HttpHeaders.DATE, dateRef.get());
diff --git a/frameworks/Java/redkale/benchmark_config.json b/frameworks/Java/redkale/benchmark_config.json
index bef5075ed0f..3fb2f8753c1 100644
--- a/frameworks/Java/redkale/benchmark_config.json
+++ b/frameworks/Java/redkale/benchmark_config.json
@@ -60,6 +60,44 @@
"notes": "",
"versus": "Redkale"
},
+ "jdk16": {
+ "plaintext_url": "/plaintext",
+ "json_url": "/json",
+ "port": 8080,
+ "approach": "Realistic",
+ "classification": "Fullstack",
+ "database": "Postgres",
+ "framework": "Redkale",
+ "language": "Java",
+ "flavor": "None",
+ "orm": "Raw",
+ "platform": "Redkale",
+ "webserver": "Redkale",
+ "os": "Linux",
+ "database_os": "Linux",
+ "display_name": "redkale-io",
+ "notes": "",
+ "versus": "Redkale"
+ },
+ "zgc": {
+ "plaintext_url": "/plaintext",
+ "json_url": "/json",
+ "port": 8080,
+ "approach": "Realistic",
+ "classification": "Fullstack",
+ "database": "Postgres",
+ "framework": "Redkale",
+ "language": "Java",
+ "flavor": "None",
+ "orm": "Raw",
+ "platform": "Redkale",
+ "webserver": "Redkale",
+ "os": "Linux",
+ "database_os": "Linux",
+ "display_name": "redkale-io",
+ "notes": "",
+ "versus": "Redkale"
+ },
"io": {
"plaintext_url": "/plaintext",
"json_url": "/json",
diff --git a/frameworks/Java/redkale/conf/application.xml b/frameworks/Java/redkale/conf/application.xml
index a554f273fed..4bcc0112d6d 100644
--- a/frameworks/Java/redkale/conf/application.xml
+++ b/frameworks/Java/redkale/conf/application.xml
@@ -6,11 +6,12 @@
+
-
+
diff --git a/frameworks/Java/redkale/conf/logging.properties b/frameworks/Java/redkale/conf/logging.properties
index f9d47a99e49..c5c514fe283 100644
--- a/frameworks/Java/redkale/conf/logging.properties
+++ b/frameworks/Java/redkale/conf/logging.properties
@@ -22,3 +22,4 @@ java.util.logging.FileHandler.unusual = ${APP_HOME}/logs-%m/log-warnerr-%d.log
java.util.logging.FileHandler.append = true
java.util.logging.ConsoleHandler.level = INFO
+
diff --git a/frameworks/Java/redkale/config.toml b/frameworks/Java/redkale/config.toml
index b997c825e41..f2bcfa25230 100644
--- a/frameworks/Java/redkale/config.toml
+++ b/frameworks/Java/redkale/config.toml
@@ -53,3 +53,29 @@ orm = "Raw"
platform = "Redkale"
webserver = "Redkale"
versus = "Redkale"
+
+[jdk16]
+urls.plaintext = "/plaintext"
+urls.json = "/json"
+approach = "Realistic"
+classification = "Fullstack"
+database = "None"
+database_os = "Linux"
+os = "Linux"
+orm = "Raw"
+platform = "Redkale"
+webserver = "Redkale"
+versus = "Redkale"
+
+[zgc]
+urls.plaintext = "/plaintext"
+urls.json = "/json"
+approach = "Realistic"
+classification = "Fullstack"
+database = "None"
+database_os = "Linux"
+os = "Linux"
+orm = "Raw"
+platform = "Redkale"
+webserver = "Redkale"
+versus = "Redkale"
diff --git a/frameworks/Java/redkale/redkale-jdk16.dockerfile b/frameworks/Java/redkale/redkale-jdk16.dockerfile
new file mode 100644
index 00000000000..09f8f665881
--- /dev/null
+++ b/frameworks/Java/redkale/redkale-jdk16.dockerfile
@@ -0,0 +1,15 @@
+FROM maven:3.6.3-openjdk-16-slim as maven
+WORKDIR /redkale
+COPY src src
+COPY conf conf
+COPY pom.xml pom.xml
+RUN mvn package -q
+
+FROM openjdk:16-jdk-slim
+WORKDIR /redkale
+COPY conf conf
+COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
+
+EXPOSE 8080
+
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=160000", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
diff --git a/frameworks/Java/redkale/redkale-zgc.dockerfile b/frameworks/Java/redkale/redkale-zgc.dockerfile
new file mode 100644
index 00000000000..e8174ab3508
--- /dev/null
+++ b/frameworks/Java/redkale/redkale-zgc.dockerfile
@@ -0,0 +1,15 @@
+FROM maven:3.6.3-openjdk-16-slim as maven
+WORKDIR /redkale
+COPY src src
+COPY conf conf
+COPY pom.xml pom.xml
+RUN mvn package -q
+
+FROM openjdk:16-jdk-slim
+WORKDIR /redkale
+COPY conf conf
+COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
+
+EXPOSE 8080
+
+CMD ["java", "-server", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseZGC", "-XX:AutoBoxCacheMax=160000", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
diff --git a/frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java b/frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java
index ec4b612cfca..b3b2b645917 100644
--- a/frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java
+++ b/frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java
@@ -7,8 +7,6 @@
import java.util.*;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.Function;
import javax.annotation.Resource;
import org.redkale.net.http.*;
import org.redkale.service.AbstractService;
@@ -24,17 +22,17 @@ public class Service extends AbstractService {
private static final byte[] helloBytes = "Hello, world!".intern().getBytes();
- private final ThreadLocal localRandom = ThreadLocal.withInitial(Random::new);
+ private final Random random = new Random();
@Resource
private DataSource source;
- private EntityCache entityCache;
+ private EntityCache cache;
@Override
public void init(AnyValue conf) {
if (source instanceof DataSqlSource) {
- this.entityCache = ((DataSqlSource) source).loadCache(CachedWorld.class);
+ this.cache = ((DataSqlSource) source).loadCache(CachedWorld.class);
}
}
@@ -50,39 +48,31 @@ public Message getHelloMessage() {
@RestMapping(name = "db")
public CompletableFuture findWorldAsync() {
- return source.findAsync(World.class, 1 + localRandom.get().nextInt(10000));
+ return source.findAsync(World.class, randomId());
}
@RestMapping(name = "queries")
public CompletableFuture queryWorldAsync(int q) {
final int size = Math.min(500, Math.max(1, q));
- final Random random = localRandom.get();
final World[] worlds = new World[size];
-
- final AtomicInteger index = new AtomicInteger();
- final Function, CompletableFuture> func = f -> source.findAsync(World.class, 1 + random.nextInt(10000))
- .thenAccept(v -> worlds[index.getAndIncrement()] = v);
- CompletableFuture future = func.apply(null);
- for (int i = 1; i < size; i++) {
- future = future.thenCompose(func);
+ final CompletableFuture[] futures = new CompletableFuture[size];
+ for (int i = 0; i < size; i++) {
+ final int index = i;
+ futures[index] = source.findAsync(World.class, randomId()).thenAccept(v -> worlds[index] = v);
}
- return future.thenApply(v -> worlds);
+ return CompletableFuture.allOf(futures).thenApply(v -> worlds);
}
@RestMapping(name = "updates")
public CompletableFuture updateWorldAsync(int q) {
final int size = Math.min(500, Math.max(1, q));
- final Random random = localRandom.get();
final World[] worlds = new World[size];
-
- final AtomicInteger index = new AtomicInteger();
- final Function, CompletableFuture> func = f -> source.findAsync(World.class, 1 + random.nextInt(10000))
- .thenAccept(v -> worlds[index.getAndIncrement()] = v.randomNumber(1 + random.nextInt(10000)));
- CompletableFuture future = func.apply(null);
- for (int i = 1; i < size; i++) {
- future = future.thenCompose(func);
+ final CompletableFuture[] futures = new CompletableFuture[size];
+ for (int i = 0; i < size; i++) {
+ final int index = i;
+ futures[index] = source.findAsync(World.class, randomId()).thenAccept(v -> worlds[index] = v.randomNumber(randomId()));
}
- return future.thenCompose(v -> {
+ return CompletableFuture.allOf(futures).thenCompose(v -> {
Arrays.sort(worlds);
return source.updateAsync(worlds);
}).thenApply(v -> worlds);
@@ -101,12 +91,14 @@ public CompletableFuture> queryFortunes() {
@RestMapping(name = "cached-worlds")
public CachedWorld[] cachedWorlds(int q) {
final int size = Math.min(500, Math.max(1, q));
- final Random random = localRandom.get();
final CachedWorld[] worlds = new CachedWorld[size];
for (int i = 0; i < size; i++) {
- worlds[i] = entityCache.find(1 + random.nextInt(10000));
+ worlds[i] = cache.find(randomId());
}
return worlds;
}
+ private int randomId() {
+ return 1 + random.nextInt(10000);
+ }
}
diff --git a/frameworks/Java/smart-socket/pom.xml b/frameworks/Java/smart-socket/pom.xml
index 3f4fcf669ca..42c144e4caf 100644
--- a/frameworks/Java/smart-socket/pom.xml
+++ b/frameworks/Java/smart-socket/pom.xml
@@ -13,7 +13,7 @@
2.11.0
1.0.4-SNAPSHOT
0.1.3-SNAPSHOT
- 1.5.6
+ 1.5.7-SNAPSHOT
diff --git a/frameworks/Java/wildfly-ee/pom.xml b/frameworks/Java/wildfly-ee/pom.xml
index c53ea245c81..a456c318d7e 100644
--- a/frameworks/Java/wildfly-ee/pom.xml
+++ b/frameworks/Java/wildfly-ee/pom.xml
@@ -10,29 +10,12 @@
UTF-8
- 15
+ 16
3.8.1
3.3.1
8.0
-
-
- jboss-public-repository-group
- JBoss Public Maven Repository Group
- https://repository.jboss.org/nexus/content/groups/public-jboss/
- default
-
- true
- never
-
-
- true
- never
-
-
-
-
@@ -83,16 +66,16 @@
org.wildfly.plugins
wildfly-jar-maven-plugin
- 3.0.2.Final
+ 4.0.0.Final
- wildfly@maven(org.jboss.universe:community-universe)#22.0.1.Final
+ wildfly@maven(org.jboss.universe:community-universe)#23.0.0.Final
org.wildfly
wildfly-datasources-galleon-pack
- 1.2.1.Final
+ 1.2.3.Final
diff --git a/frameworks/Java/wildfly-ee/wildfly-ee.dockerfile b/frameworks/Java/wildfly-ee/wildfly-ee.dockerfile
index 452157b0d6e..8ead204510b 100644
--- a/frameworks/Java/wildfly-ee/wildfly-ee.dockerfile
+++ b/frameworks/Java/wildfly-ee/wildfly-ee.dockerfile
@@ -1,10 +1,9 @@
-FROM maven:3.6.3-adoptopenjdk-15
+FROM maven:3.6.3-openjdk-16
WORKDIR /wildfly
EXPOSE 8080
+ENV MAVEN_OPTS="--add-exports=java.xml/com.sun.org.apache.xerces.internal.parsers=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.util=ALL-UNNAMED"
COPY src src
COPY scripts scripts
COPY pom.xml pom.xml
-RUN apt-get update
-RUN apt-get install -yqq wget
RUN mvn clean package -P bootable-jar
CMD java -Djava.net.preferIPv4Stack=true -Xmx24g -XX:+UseZGC -jar target/wildfly-ee-bootable.jar
diff --git a/frameworks/JavaScript/fastify/fastify-mysql.dockerfile b/frameworks/JavaScript/fastify/fastify-mysql.dockerfile
index f58e439927f..70c0b37e076 100644
--- a/frameworks/JavaScript/fastify/fastify-mysql.dockerfile
+++ b/frameworks/JavaScript/fastify/fastify-mysql.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/JavaScript/fastify/fastify-postgres.dockerfile b/frameworks/JavaScript/fastify/fastify-postgres.dockerfile
index e55bd556678..5d707176de1 100644
--- a/frameworks/JavaScript/fastify/fastify-postgres.dockerfile
+++ b/frameworks/JavaScript/fastify/fastify-postgres.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/JavaScript/fastify/fastify.dockerfile b/frameworks/JavaScript/fastify/fastify.dockerfile
index 6c257684432..4de5e22475f 100644
--- a/frameworks/JavaScript/fastify/fastify.dockerfile
+++ b/frameworks/JavaScript/fastify/fastify.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/JavaScript/nodejs/README.md b/frameworks/JavaScript/nodejs/README.md
index acf9bc6ce47..d31d3c4d8a1 100644
--- a/frameworks/JavaScript/nodejs/README.md
+++ b/frameworks/JavaScript/nodejs/README.md
@@ -16,7 +16,7 @@ The server is currently in Alpha state, but aims to be a drop-in replacement for
## Infrastructure Software Versions
The tests were run with:
-* [Node.js v14.15.5](http://nodejs.org/)
+* [Node.js v14.16.0](http://nodejs.org/)
* [Node MySQL 2.16.0](https://github.com/felixge/node-mysql/)
* [Sequelize 5.15.1](https://github.com/sequelize/sequelize)
diff --git a/frameworks/JavaScript/nodejs/nodejs.dockerfile b/frameworks/JavaScript/nodejs/nodejs.dockerfile
index 433f5224d31..977a95928f5 100644
--- a/frameworks/JavaScript/nodejs/nodejs.dockerfile
+++ b/frameworks/JavaScript/nodejs/nodejs.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
ARG TFB_TEST_NAME
diff --git a/frameworks/Python/aiohttp/requirements.txt b/frameworks/Python/aiohttp/requirements.txt
index 389292e1431..7c18972a172 100644
--- a/frameworks/Python/aiohttp/requirements.txt
+++ b/frameworks/Python/aiohttp/requirements.txt
@@ -2,7 +2,7 @@ aiohttp==3.7.4
asyncpg==0.22.0
cchardet==2.1.7
gunicorn==20.0.4
-jinja2==2.11.2
+jinja2==2.11.3
psycopg2==2.8.6
SQLAlchemy==1.4.0b3
ujson==2.0.3
diff --git a/frameworks/Python/api_hour/requirements.txt b/frameworks/Python/api_hour/requirements.txt
index fb964cdcbcf..44475e9a848 100644
--- a/frameworks/Python/api_hour/requirements.txt
+++ b/frameworks/Python/api_hour/requirements.txt
@@ -6,7 +6,7 @@ asyncio-redis==0.13.4
chardet==2.3.0
gunicorn==19.9.0
hiredis==0.2.0
-Jinja2==2.10.1
+Jinja2==2.11.3
MarkupSafe==0.23
piprot==0.9.1
psycopg2==2.7.5
diff --git a/frameworks/Python/flask/requirements-pypy.txt b/frameworks/Python/flask/requirements-pypy.txt
index 05b2f4d44a7..0459a398a2d 100644
--- a/frameworks/Python/flask/requirements-pypy.txt
+++ b/frameworks/Python/flask/requirements-pypy.txt
@@ -7,7 +7,7 @@ Flask-SQLAlchemy==2.3.2
greenlet==0.4.14
gunicorn==19.9.0
itsdangerous==0.24
-Jinja2==2.10.1
+Jinja2==2.11.3
MarkupSafe==1.0
PyMySQL==0.8.0
readline==6.2.4.1
diff --git a/frameworks/Python/flask/requirements.txt b/frameworks/Python/flask/requirements.txt
index 0d3f47b4f7d..97d26c97b11 100644
--- a/frameworks/Python/flask/requirements.txt
+++ b/frameworks/Python/flask/requirements.txt
@@ -4,7 +4,7 @@ Flask-SQLAlchemy==2.3.2
greenlet==0.4.14
gunicorn==19.9.0
itsdangerous==0.24
-Jinja2==2.10.1
+Jinja2==2.11.3
MarkupSafe==1.0
meinheld==0.6.1
mysqlclient==1.3.12
diff --git a/frameworks/Python/klein/requirements.txt b/frameworks/Python/klein/requirements.txt
index 7a12bb25524..2184d134e65 100644
--- a/frameworks/Python/klein/requirements.txt
+++ b/frameworks/Python/klein/requirements.txt
@@ -1,4 +1,4 @@
klein==15.3.1
mysqlclient==1.3.7
SQLAlchemy==1.0.12
-jinja2==2.10.1
+jinja2==2.11.3
diff --git a/frameworks/Python/morepath/requirements.txt b/frameworks/Python/morepath/requirements.txt
index d4ef51545ba..68dc3474f06 100644
--- a/frameworks/Python/morepath/requirements.txt
+++ b/frameworks/Python/morepath/requirements.txt
@@ -2,7 +2,7 @@ dectate==0.13
greenlet==0.4.14
gunicorn==19.9.0
importscan==0.1
-Jinja2==2.10.1
+Jinja2==2.11.3
MarkupSafe==1.0
meinheld==0.6.1
more.jinja2==0.2
diff --git a/frameworks/Python/responder/requirements.txt b/frameworks/Python/responder/requirements.txt
index 488113ce268..348fabc2352 100644
--- a/frameworks/Python/responder/requirements.txt
+++ b/frameworks/Python/responder/requirements.txt
@@ -1,6 +1,6 @@
asyncpg==0.20.1
gunicorn==20.0.4
-Jinja2==2.11.1
+Jinja2==2.11.3
ujson==2.0.3
uvloop==0.14.0
uvicorn==0.11.3
diff --git a/frameworks/Python/starlette/requirements.txt b/frameworks/Python/starlette/requirements.txt
index 43c2aab83f9..700843dcc41 100644
--- a/frameworks/Python/starlette/requirements.txt
+++ b/frameworks/Python/starlette/requirements.txt
@@ -1,6 +1,6 @@
asyncpg==0.20.1
gunicorn==20.0.4
-Jinja2==2.11.1
+Jinja2==2.11.3
ujson==2.0.3
uvloop==0.14.0
uvicorn==0.11.7
diff --git a/frameworks/Python/turbogears/requirements.txt b/frameworks/Python/turbogears/requirements.txt
index b1e27c0b8ff..8c7c0caaf84 100644
--- a/frameworks/Python/turbogears/requirements.txt
+++ b/frameworks/Python/turbogears/requirements.txt
@@ -3,7 +3,7 @@ tg.devtools==2.3.8
SQLAlchemy==1.0.12
zope.sqlalchemy==0.7.6
mysqlclient==1.3.7
-jinja2==2.10.1
+jinja2==2.11.3
gunicorn==19.9.0
meinheld==0.6.1
diff --git a/frameworks/Python/uvicorn/requirements.txt b/frameworks/Python/uvicorn/requirements.txt
index a384448dec9..87f457e6a58 100644
--- a/frameworks/Python/uvicorn/requirements.txt
+++ b/frameworks/Python/uvicorn/requirements.txt
@@ -1,6 +1,6 @@
asyncpg==0.20.1
gunicorn==20.0.4
-Jinja2==2.11.1
+Jinja2==2.11.3
ujson==2.0.3
uvloop==0.14.0
uvicorn==0.11.7
diff --git a/frameworks/Racket/racket/app.rkt b/frameworks/Racket/racket/app.rkt
index 045940d4ee0..4a7d9cfac9a 100644
--- a/frameworks/Racket/racket/app.rkt
+++ b/frameworks/Racket/racket/app.rkt
@@ -5,6 +5,7 @@
racket/fasl
racket/port
racket/serialize
+ racket/unix-socket-tcp-unit
redis
threading
web-server/dispatch
@@ -213,8 +214,7 @@
racket/format
web-server/http/response
web-server/safety-limits
- web-server/web-server
- "unix-socket-tcp-unit.rkt")
+ web-server/web-server)
(define port
(command-line
@@ -230,7 +230,7 @@
#:dispatch app
#:listen-ip "127.0.0.1"
#:port port
- #:tcp@ (make-unix-socket-tcp@ port (format "~a.sock" port))
+ #:tcp@ (make-unix-socket-tcp@ (format "~a.sock" port))
#:confirmation-channel ch
#:safety-limits (make-safety-limits
#:max-waiting 4096
diff --git a/frameworks/Racket/racket/racket.dockerfile b/frameworks/Racket/racket/racket.dockerfile
index dc78e31b280..49f3d1b5772 100644
--- a/frameworks/Racket/racket/racket.dockerfile
+++ b/frameworks/Racket/racket/racket.dockerfile
@@ -11,7 +11,7 @@ RUN echo 'APT::Get::Install-Recommends "false";' > /etc/apt/apt.conf.d/00-genera
FROM debian AS racket
-ARG RACKET_VERSION=7.8
+ARG RACKET_VERSION=8.0
RUN apt-get update -q \
&& apt-get install --no-install-recommends -q -y \
diff --git a/frameworks/Racket/racket/unix-socket-tcp-unit.rkt b/frameworks/Racket/racket/unix-socket-tcp-unit.rkt
deleted file mode 100644
index a78bcbff90c..00000000000
--- a/frameworks/Racket/racket/unix-socket-tcp-unit.rkt
+++ /dev/null
@@ -1,55 +0,0 @@
-#lang racket/base
-
-(require net/tcp-sig
- racket/unit
- racket/unix-socket)
-
-(provide
- make-unix-socket-tcp@)
-
-(define (make-unix-socket-tcp@ port path)
- (unit
- (import)
- (export tcp^)
-
- (define (tcp-abandon-port p)
- (void))
-
- (define (tcp-accept l)
- (unix-socket-accept l))
-
- (define (tcp-accept/enable-break l)
- (parameterize-break #t
- (unix-socket-accept l)))
-
- (define (tcp-accept-ready? _l)
- #t)
-
- (define (tcp-addresses _p [port-numbers? #f])
- (if port-numbers?
- (values "127.0.0.1" port "127.0.0.1" 0)
- (values "127.0.0.1" "127.0.0.1")))
-
- (define (tcp-close l)
- (unix-socket-close-listener l))
-
- (define (tcp-connect _hostname
- _port-no
- [_local-hostname #f]
- [_local-port-no #f])
- (error 'tcp-connect "not supported"))
-
- (define (tcp-connect/enable-break _hostname
- _port-no
- [_local-hostname #f]
- [_local-port-no #f])
- (error 'tcp-connect/enable-break "not supported"))
-
- (define (tcp-listen _port-no
- [backlog 4]
- [_reuse? #f]
- [_hostname #f])
- (unix-socket-listen path backlog))
-
- (define (tcp-listener? l)
- (unix-socket-listener? l))))
diff --git a/frameworks/Rust/ntex/Cargo.toml b/frameworks/Rust/ntex/Cargo.toml
index 7e030ebdd1c..7edf66ccc77 100755
--- a/frameworks/Rust/ntex/Cargo.toml
+++ b/frameworks/Rust/ntex/Cargo.toml
@@ -16,8 +16,9 @@ name = "ntex-raw"
path = "src/main_raw.rs"
[dependencies]
-ntex = "0.3.6"
-snmalloc-rs = { version = "0.2.25", features = ["1mib", "native-cpu"] }
+ntex = "0.3.12"
+mimalloc = { version = "0.1.25", default-features = false }
+snmalloc-rs = { version = "0.2.26", features = ["1mib", "native-cpu"] }
yarte = { version = "0.15", features = ["bytes-buf", "json"] }
env_logger = "0.8"
random-fast-rng = "0.1.1"
diff --git a/frameworks/Rust/ntex/src/main.rs b/frameworks/Rust/ntex/src/main.rs
index 44790dd9457..d8340fea199 100644
--- a/frameworks/Rust/ntex/src/main.rs
+++ b/frameworks/Rust/ntex/src/main.rs
@@ -47,8 +47,7 @@ async fn main() -> std::io::Result<()> {
.keep_alive(http::KeepAlive::Os)
.client_timeout(0)
.disconnect_timeout(0)
- .read_high_watermark(65535)
- .write_high_watermark(65535)
+ .buffer_params(65535, 65535, 1024)
.h1(web::App::new()
.service(json)
.service(plaintext)
diff --git a/frameworks/Rust/ntex/src/main_db.rs b/frameworks/Rust/ntex/src/main_db.rs
index 809d84a8c91..3a8250d264e 100644
--- a/frameworks/Rust/ntex/src/main_db.rs
+++ b/frameworks/Rust/ntex/src/main_db.rs
@@ -1,5 +1,5 @@
#[global_allocator]
-static GLOBAL: snmalloc_rs::SnMalloc = snmalloc_rs::SnMalloc;
+static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;
use std::{pin::Pin, task::Context, task::Poll};
@@ -99,11 +99,11 @@ async fn main() -> std::io::Result<()> {
.keep_alive(KeepAlive::Os)
.client_timeout(0)
.disconnect_timeout(0)
- .read_high_watermark(65535)
- .write_high_watermark(65535)
+ .buffer_params(65535, 65535, 1024)
.h1(AppFactory)
.tcp()
})?
+ .workers((num_cpus::get() as f32 * 1.2) as usize)
.start()
.await
}
diff --git a/frameworks/Rust/ntex/src/main_raw.rs b/frameworks/Rust/ntex/src/main_raw.rs
index c3cd84c40c4..27b3ee140f4 100644
--- a/frameworks/Rust/ntex/src/main_raw.rs
+++ b/frameworks/Rust/ntex/src/main_raw.rs
@@ -39,11 +39,12 @@ impl Future for App {
return Poll::Ready(Ok(()));
}
- let mut updated = false;
+ let read = this.state.read();
+ let write = this.state.write();
loop {
- match this.state.decode_item(&this.codec) {
+ match read.decode(&this.codec) {
Ok(Some((req, _))) => {
- this.state.with_write_buf(|buf| {
+ write.with_buf(|buf| {
// make sure we've got room
let remaining = buf.capacity() - buf.len();
if remaining < 1024 {
@@ -70,7 +71,6 @@ impl Future for App {
}
}
});
- updated = true;
}
Ok(None) => break,
_ => {
@@ -79,13 +79,10 @@ impl Future for App {
}
}
}
- if updated {
- this.state.dsp_restart_write_task();
- }
- if this.state.is_read_ready() {
- this.state.dsp_register_task(cx.waker());
+ if read.is_ready() {
+ this.state.register_dispatcher(cx.waker());
} else {
- this.state.dsp_read_more_data(cx.waker());
+ read.wake(cx.waker())
}
Poll::Pending
}
diff --git a/frameworks/TypeScript/nest/nestjs-fastify-mongo.dockerfile b/frameworks/TypeScript/nest/nestjs-fastify-mongo.dockerfile
index 4e9aaea9353..31b81790e91 100644
--- a/frameworks/TypeScript/nest/nestjs-fastify-mongo.dockerfile
+++ b/frameworks/TypeScript/nest/nestjs-fastify-mongo.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/TypeScript/nest/nestjs-fastify-mysql.dockerfile b/frameworks/TypeScript/nest/nestjs-fastify-mysql.dockerfile
index fe45a11450e..3078c401b53 100644
--- a/frameworks/TypeScript/nest/nestjs-fastify-mysql.dockerfile
+++ b/frameworks/TypeScript/nest/nestjs-fastify-mysql.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/TypeScript/nest/nestjs-fastify.dockerfile b/frameworks/TypeScript/nest/nestjs-fastify.dockerfile
index 47cb62e3758..8ba171cc04d 100644
--- a/frameworks/TypeScript/nest/nestjs-fastify.dockerfile
+++ b/frameworks/TypeScript/nest/nestjs-fastify.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/TypeScript/nest/nestjs-mongo.dockerfile b/frameworks/TypeScript/nest/nestjs-mongo.dockerfile
index 52b4668637e..a84ec2a46d8 100644
--- a/frameworks/TypeScript/nest/nestjs-mongo.dockerfile
+++ b/frameworks/TypeScript/nest/nestjs-mongo.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/TypeScript/nest/nestjs-mysql.dockerfile b/frameworks/TypeScript/nest/nestjs-mysql.dockerfile
index cae8394a1da..1f65ce50dc2 100644
--- a/frameworks/TypeScript/nest/nestjs-mysql.dockerfile
+++ b/frameworks/TypeScript/nest/nestjs-mysql.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./
diff --git a/frameworks/TypeScript/nest/nestjs.dockerfile b/frameworks/TypeScript/nest/nestjs.dockerfile
index ed4c8f3e05d..23a52ba3bf9 100644
--- a/frameworks/TypeScript/nest/nestjs.dockerfile
+++ b/frameworks/TypeScript/nest/nestjs.dockerfile
@@ -1,4 +1,4 @@
-FROM node:14.15.5-slim
+FROM node:14.16.0-slim
COPY ./ ./