vibe.d beta banner
get vibe.d

Asynchronous I/O that doesn’t get in your way, written in D

Enum member HTTPServerOption.distribute

struct HTTPServerOption
  // ...
  enum distribute = cast(HTTPServerOptionImpl)512;
  // ...


Distributes request processing among worker threads

Note that this functionality assumes that the request handler is implemented in a thread-safe way. However, the D type system is bypassed, so that no static verification takes place.

For this reason, it is recommended to instead use runWorkerTaskDist and call listenHTTP from each task/thread individually. If the reusePort option is set, then all threads will be able to listen on the same port, with the operating system distributing the incoming connections.

If possible, instead of threads, the use of separate processes is more robust and often faster. The reusePort option works the same way in this scenario.


Sönke Ludwig, Jan Krüger, Ilya Shipunov


© 2012-2017 RejectedSoftware e.K.


Subject to the terms of the MIT license, as written in the included LICENSE.txt file.