handy-httpd 7.6.1

Extremely lightweight HTTP server for D.


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:

handy-httpd

An extremely lightweight HTTP server for the D programming language.

Already using Handy-Httpd? Consider filling out this feedback form so we can keep improving!

Check out the full documentation here.

Features

  • HTTP/1.1
  • Worker pool for request handling
  • Simple configuration
  • High performance
  • Beginner friendly
  • Extensible with custom handlers, exception handlers, and filters
  • Well-documented
  • Prioritises testability
  • Ships with some handy pre-made request handlers:
    • Serve static files with the FileResolvingHandler
    • Apply filters before and after handling requests with the FilteredHandler
    • Handle complex URL paths, including path parameters and wildcards, with the PathDelegatingHandler

Simple Example

In this example, we take advantage of the Dub package manager's single-file SDL syntax to declare HandyHttpd as a dependency. For this example, we'll call this my_server.d.

#!/usr/bin/env dub
/+ dub.sdl:
	dependency "handy-httpd" version="~>7"
+/
import handy_httpd;

void main() {
	new HttpServer((ref ctx) {
		if (ctx.request.url == "/hello") {
			ctx.response.writeBodyString("Hello world!");
		} else {
			ctx.response.setStatus(HttpStatus.NOT_FOUND);
		}
	}).start();
}

To start the server, just mark the script as executable, and run it:

chmod +x my_server.d
./my_server.d

And finally, if you navigate to http://localhost:8080/hello, you should see the Hello world! text appear.

Authors:
Dependencies:
slf4d, streams, httparsed
Versions:
8.4.0 2024-Apr-16
8.3.2 2024-Feb-16
8.3.1 2024-Feb-14
8.3.0 2024-Jan-30
8.2.0 2024-Jan-27
Show all 71 versions
Download Stats:
  • 5 downloads today

  • 32 downloads this week

  • 104 downloads this month

  • 19055 downloads total

Score:
3.2
Short URL:
handy-httpd.dub.pm