vibe.d beta banner
get vibe.d

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

vibe.d 0.8.2 release

vibe.d 0.8.2 release

Header image
Tue, 12 Dec 2017The major changes in this release are HTTP forward proxy support, handling incoming HTTP requests on custom transports and a MongoDB based session store. On top of that, there are many smaller improvements in the HTTP server, web/REST generator, JSON/BSON support and the TLS sub system.

Features and improvements

  • Web/REST framework
    • Added support for @noRoute in the REST interface generator - issue #1934
    • Added support for @requiresAuth on REST interfaces in addition to classes - pull #1939
    • Added global request/response properties for the web interface generator (by Benjamin Schaaf) - issue #1937, pull #1938
    • The language list for @translationContext can now be specified as a compile-time constant array in addition to a tuple (by Jan Jurzitza aka WebFreak) - pull #1879
  • HTTP sub system
    • Added HTTP forward proxy support based on the existing reverse proxy code (by Matt Remmel) - pull #1893
    • Deprecated non-nothrow WebSocket handler callbacks - issue #1420, pull #1890
    • Added handleHTTPConnection to serve HTTP requests on a custom transport - pull #1929
    • Added HTTPServerRequest.requestPath as an InetPath property replacing .path to avoid encoding related issues - pull #1940
    • Added HTTPClientRequest.remoteAddress
    • Added HTTPListener.bindAddresses property, this allows querying the actual port when passing 0 to HTTPServerSettings.bindPort - issue #1818, pull #1930
    • Added SysTime/Duration based overloads for Cookie.expire/.maxAge - issue #1701, pull #1889
  • MongoDB driver
    • Added MongoSessionStore for MongoDB based HTTP session storage
    • The MongoDB driver now forwards server error messages (by Martin Nowak) - pull #1951
  • Extended the JSON parser to handle forward ranges in addition to random access ranges (by John Colvin) - pull #1906
  • Added std.uuid.UUID conversion support for Bson (by Denis Feklushkin) - pull #1404
  • Added "openssl-1.1" and "openssl-0.9" configurations to the vibe-d:tls package to enable switching the OpenSSL target version without having to define version constants - pull #1965
  • Added NativePath based overloads of TLSContext.usePrivateKeyFile and .useCertificateChainFile
  • Added setCommandLineArgs - can be used together with a VibeDisableCommandLineParsing version to customize command line parsing - pull #1916

Bug fixes

  • Fixed getting the X509 certificate for printing certificate errors on OpenSSL 1.1 (by Martin Nowak) - pull #1921
  • Fixed handling of out parameters in the REST interface (were erroneously read from the request) - issue #1933, pull #1935
  • Fixed an "orphan format specifier" error in the web interface handling code
  • Fixed the JSON parser to work at compile-time (by Benjamin Schaaf) - pull #1960
  • Fixed an error in the Botan TLS provider if used to serve HTTPS - issue #1918, pull #1964
  • Fixed a web interface generator compile error in case of an empty language list in the @translationContext - issue #1955, pull #1956
  • Fixed a bogus error during HTTP request finalization - issue #1966
  • Fixed the command line argument parser getting tripped up by druntime arguments ("--DRT-...") (by Martin Nowak) - pull #1944
  • Fixed a possible race condition when stopping a RedisListener (by Etienne Cimon) - pull #1201, pull #1971
  • Fixed support for TCPListenOptions.reusePort on macOS and FreeBSD - pull #1972
  • Fixed handling of CONNECT requests in the HTTP proxy server - pull #1973

Note about OpenSSL support

The OpenSSL 1.1.x support added by the last release received fixes for linker errors that ocurred on some systems. At the same time, the selection of the library version can now be done using a DUB build configuration in the "vibe-d:tls" package instead of defining the VibeOpenSSL11 version.

On systems that use the newer 1.1.x branch, this can be done on the DUB command line using --override-config vibe-d:tls/openssl-1.1. Alternatively, a using a sub configuration directive in the package recipe can be used:

SDL syntax:

dependency "vibe-d:tls" version="~>0.8.2"
subConfiguration "vibe-d:tls" "openssl-1.1"

JSON syntax:

    "dependencies": {
        "vibe-d:tls": "~>0.8.2"
    "subConfigurations": {
        "vibe-d:tls": "openssl-1.1"

For older systems there is also an "openssl-0.9" configuration that can be used in analogy to the above to build against the OpenSSL 0.9.8 branch.

Finally, there is a "botan" configuration for using the D port of the Botan library.


Posted at 20:37:09 +0100 by Sönke Ludwig


msdnmnipba day ago

7g5Hpc <a href="">jwgisgwmlzig</a>, [url=]xqudanirlmsk[/url], [link=]fvywnwbpedvw[/link],

Do you really want to delete this comment?

GoldenTabs8 days ago


Do you really want to delete this comment?

GoldenTabs9 days ago


Do you really want to delete this comment?

GoldenTabs9 days ago


Do you really want to delete this comment?

m8818 days ago

You can even replace your chosen MP3 music with one of these to ensure
even if you are concerning the gym, it is possible to still
understand interesting points from the book or listen for the docs from perform which you must examine.
These guides enable you to practice when you are ready and also have the
time to do so. You need a special connector typically referred to as a Fire wire or best known as a possible IEEE 1394 high band connector.

Do you really want to delete this comment?

link m8819 days ago

If you're travelling to another city and find that there's a good show because city,
you can not investigate different lenders for that box office,
stand it a line and buy the tickets. They will shun jobs where there is no benefit to the community involved.
Technology is driving dynamic advertising into new areas and this brings by using it some potential challenges,
well not every companies have enough money to pay a lot of money in electronic advertising, well both options highlighted offers a similar outcomes
with low investment of time and funds, so now any business from mechanics to dentists might have these within their guest waiting rooms.

Do you really want to delete this comment?

taulordmemad.mihanblog.com19 days ago

You can even replace your favorite MP3 music with these to ensure
that even if you're regarding the gym, you are able to still understand interesting
points from your book or listen towards docs from perform which you need to examine.
Contestants worldwide will record songs by themselves, or synergy into virtual bands of 2-4 musicians, and compete for $5600 in prizes.
The first lesson you should learn together with your
online course is how to read chord charts.

Do you really want to delete this comment?

pussy19 days ago

As a result of their work, Positive View's events have received coverage from
many global television networks and still have also been streamed for online viewing.
These guides let you practice when you are and still have the time
and energy to do so. Here you'll be able to shop by
theme or browse a whole variety of themes if you're sill unsure about what
to base the party.

Do you really want to delete this comment?

TwilaTob19 days ago

Absolutely NEW update of SEO/SMM package "XRumer 16.0 + XEvil":
captcha solving of Google, Facebook, Bing, Hotmail, SolveMedia, Yandex,
and more than 8400 another subtypes of captchas,
with highest precision (80..100%) and highest speed (100 img per second).
You can connect XEvil 3.0 to all most popular SEO/SMM software: XRumer, GSA SER, ZennoPoster, Srapebox, Senuke, and more than 100 of other software.

Interested? You can find a lot of introducing videos about XEvil in YouTube.
Good luck!

P.S. XEvil 4.0. break Google ReCaptcha2 too;)

Do you really want to delete this comment?