hunt-http ~master
Hunt-Http is a flexible performant http server and client. Support HTTP/1.1, HTTP/2, WebSocket and static resource.
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
hunt-http
Hunt-Http is a flexible performant http server and client written in D Programming Language.
Features
Feature | Server | Client |
---|---|---|
HTTP 1.x | tested | tested |
HTTP/2 | tested | tested |
TLS 1.2 | tested | tested[1] |
WebSocket[2] | tested | tested |
Routing | tested | none |
Cookie | tested | tested[3] |
Session | tested[4] | tested |
Form-Data[5] | tested | tested |
X-WWW-Form | tested | tested |
Note:
[1] Mutual TLS supported
[2] WSS untested
[3] In-memory only
[4] In-memory only
[5] File upload and download
Simple codes
Using hunt-http build a web server
import hunt.http;
void main()
{
auto server = HttpServer.builder()
.setListener(8080, "0.0.0.0")
.setHandler((RoutingContext context) {
context.write("Hello World!");
context.end();
}).build();
server.start();
}
Using hunt-http build a http client
import hunt.http;
import std.stdio;
void main()
{
auto client = new HttpClient();
auto request = new RequestBuilder().url("http://www.huntlabs.net").build();
auto response = client.newCall(request).execute();
if (response !is null)
{
writeln(response.getBody().asString());
}
}
Using hunt-http build a websocket server
import hunt.http;
void main()
{
auto server = HttpServer.builder()
.setListener(8080, "0.0.0.0")
.websocket("/ws", new class AbstractWebSocketMessageHandler {
override void onText(WebSocketConnection connection, string text)
{
connection.sendText("Hello " ~ text);
}
}).build()
server.start();
}
Avaliable versions
Name | Description | |
---|---|---|
HUNTHTTPDEBUG | Used to log debug messages about Hunt-HTTP | |
HUNT_METRIC | Used to enable some operations and APIs about metric |
TODO
- [ ] Reorganizing modules
- [ ] PersistentCookieStore for HttpClient
- [ ] Benchmark
References
- Eclipse Jetty 9.4.x, https://github.com/eclipse/jetty.project
- Registered by zoujiaqing
- ~master released 2 years ago
- huntlabs/hunt-http
- www.huntlabs.net
- Apache-2.0
- Copyright (C) 2018-2021, HuntLabs
- Dependencies:
- hunt-net
- Versions:
-
0.8.2 2022-Mar-03 0.8.1 2021-Nov-08 0.7.8 2021-Sep-03 0.6.18 2021-Sep-03 0.5.1 2020-Apr-30 - Download Stats:
-
-
1 downloads today
-
18 downloads this week
-
91 downloads this month
-
5496 downloads total
-
- Score:
- 3.0
- Short URL:
- hunt-http.dub.pm