diff --git a/frameworks/D/photon-http/dub.json b/frameworks/D/photon-http/dub.json index ab3f38cad36..d6f02952c74 100644 --- a/frameworks/D/photon-http/dub.json +++ b/frameworks/D/photon-http/dub.json @@ -4,9 +4,10 @@ ], "copyright": "Copyright © 2025, Dmitry Olshansky", "dependencies": { - "asdf": "~>0.7.17", + "mir-ion": "~>2.3.4", + "xbuf" : "~>0.2.1", "photon": "~>0.18.5", - "photon-http": "~>0.6.0" + "photon-http": "~>0.6.8" }, "description": "Benchmark of photon-http", "license": "BSL-1.0", diff --git a/frameworks/D/photon-http/source/app.d b/frameworks/D/photon-http/source/app.d index c730b26e9b3..94c585bfd59 100644 --- a/frameworks/D/photon-http/source/app.d +++ b/frameworks/D/photon-http/source/app.d @@ -2,7 +2,12 @@ import std.stdio; import std.socket; import std.array; -import asdf.serialization; +import mir.ser; +import mir.ser.json; + +import std.range.primitives; + +import glow.xbuf; import photon, photon.http; @@ -14,21 +19,21 @@ struct Message class BenchmarkProcessor : HttpProcessor { HttpHeader[] plainText = [HttpHeader("Content-Type", "text/plain; charset=utf-8")]; HttpHeader[] json = [HttpHeader("Content-Type", "application/json")]; - Appender!(char[]) jsonBuf; + Buffer!char jsonBuf; this(Socket sock) { super(sock); - jsonBuf = appender!(char[]); + jsonBuf = Buffer!char(256); } override void handle(HttpRequest req) { if (req.uri == "/plaintext") { - respondWith("Hello, world!", 200, plainText); + respondWith("Hello, world!", HttpStatus.OK, plainText); } else if(req.uri == "/json") { jsonBuf.clear(); - Message("Hello, World!").serializeToJsonPretty!""(jsonBuf); - respondWith(jsonBuf.data, 200, json); + serializeJsonPretty!""(jsonBuf, Message("Hello, World!")); + respondWith(jsonBuf.data, HttpStatus.OK, json); } else { - respondWith("Not found", 404, plainText); + respondWith("Not found", HttpStatus.NotFound, plainText); } } }