Added initial code.

This commit is contained in:
Andrew Lalis 2025-01-14 18:14:18 -05:00
parent 409889d539
commit 1506294de8
5 changed files with 77 additions and 0 deletions

17
.gitignore vendored Normal file
View File

@ -0,0 +1,17 @@
.dub
docs.json
__dummy.html
docs/
/handy-http-starter
handy-http-starter.so
handy-http-starter.dylib
handy-http-starter.dll
handy-http-starter.a
handy-http-starter.lib
handy-http-starter-test-*
*.exe
*.pdb
*.o
*.obj
*.lst
*.a

1
LICENSE Normal file
View File

@ -0,0 +1 @@
Handy-Http by Andrew Lalis is marked with CC0 1.0 Universal. To view a copy of this license, visit https://creativecommons.org/publicdomain/zero/1.0/

14
dub.json Normal file
View File

@ -0,0 +1,14 @@
{
"authors": [
"Andrew Lalis"
],
"copyright": "Copyright © 2025, Andrew Lalis",
"dependencies": {
"handy-http-primitives": "~>1",
"handy-http-transport": "~>1"
},
"description": "A collection of Handy-HTTP dependencies and common boilerplate code for starting a web server in minutes.",
"license": "CC0",
"name": "handy-http-starter",
"targetType": "library"
}

10
dub.selections.json Normal file
View File

@ -0,0 +1,10 @@
{
"fileVersion": 1,
"versions": {
"handy-http-primitives": "1.0.0",
"handy-http-transport": "1.0.2",
"photon": "0.10.2",
"sharded-map": "2.7.0",
"streams": "3.5.0"
}
}

View File

@ -0,0 +1,35 @@
module handy_http_starter;
public import handy_http_transport;
public import handy_http_primitives;
/**
* Starts an HTTP server, using the given handler to handle all incoming
* requests.
* Params:
* handler = The handler to use for requests.
* port = The port to host the server on. Defaults to 8080.
*/
void startServer(HttpRequestHandler handler, ushort port = 8080) {
HttpTransport tp = new Http1Transport(handler, port);
tp.start();
}
/**
* Starts an HTTP server, using the given delegate function to handle all
* incoming requests.
* Params:
* dg = The handler delegate function.
* port = The port to host the server on. Defaults to 8080.
*/
void startServer(
void delegate(ref ServerHttpRequest, ref ServerHttpResponse) dg,
ushort port = 8080
) {
auto handler = new class HttpRequestHandler {
void handle(ref ServerHttpRequest req, ref ServerHttpResponse resp) {
dg(req, resp);
}
};
startServer(handler, port);
}