Event driven web and concurrency framework

Package Information

Version0.7.31-beta.1 (2017-Jan-31)
CopyrightCopyright © 2012-2016 rejectedsoftware e.K.
AuthorsSönke Ludwig, Jan Krüger, Matthias Dondorff, see github for more
Registered bySönke Ludwig
Sub packages
Basic I/O and concurrency primitives, as well as low level utility functions
Low level utility functionality
Data format and serialization support
HTTP server and client implementation and higher level HTTP functionality
SMTP client support
Diet HTML template system
MongoDB database client implementation
Redis database client implementation
High level web and REST service framework










System dependenciesOptionally libevent 2.0.x, OpenSSL 1.0.x


To use this package, put the following dependency into your project's dependencies section:




vibe.d is a high-performance asynchronous I/O, concurrency and web application toolkit written in D. It already contains many supplemental features such as database support to be able to offer a complete development environment. For more specialized needs, there are also many compatible DUB packages available.

Visit the website at for more information.

Build Status


Vibe.d aims to support at least the 3 latest minor releases of D. At the moment, the following compilers are supported and tested:

  • DMD 2.072.0
  • DMD 2.071.2
  • DMD 2.070.2
  • DMD 2.069.2
  • DMD 2.068.2
  • LDC 1.0.0 (FE: 2.070.2)
  • LDC 0.17.0-beta.2 (FE: 2.068.2)

Up to 0.7.29:

  • DMD 2.067.1
  • LDC 0.16.1

Up to 0.7.27:

  • DMD 2.066
  • GDC 5.2.0
  • GDC 4.9.2
  • LDC 0.15.1


Instead of explicitly installing vibe.d, it is recommended to use DUB for building vibe.d based applications. Once DUB is installed, you can create and run a new project using the following shell commands:

dub init <name> -t vibe.d
cd <name>

Similarly, you can run an example by invoking dub from any of the example project directories.

Note that on non-Windows operating systems, you also need to have libevent and OpenSSL installed - and of course a D compiler. See below for instructions.

Additional setup on Windows

Note for building on Win64

There are currently no 64-bit Windows binaries of libevent included, so you'll either need to build those yourself, or you can switch to the "win32" event driver by inserting "subConfigurations": {"vibe-d": "win32"} into the dub.json file of your project.

Additional setup on Mac using brew

If you don't have brew installed, install it according to their install instructions and install libevent.

ruby -e "$(curl -fsSL"
brew install libevent

You can then also install DUB using brew:

brew install dub

(Note: Install brew only if you do not have macports, as they will conflict)

Install DMD using the installer on

Optionally, run ./ to create a user/group pair for privilege lowering.

Additional setup on Linux (Debian/Ubuntu/Mint)

Install vibe.d's dependencies (*)

sudo apt-get install libevent-dev libssl-dev

On 32-bit linux: Install DMD-i386

sudo apt-get install g++ gcc-multilib xdg-utils
wget ""
sudo dpkg -i dmd_2.068.2-0_i386.deb

On 64-bit linux: Install DMD-amd64

sudo apt-get install g++ gcc-multilib xdg-utils
wget ""
sudo dpkg -i dmd_2.068.2-0_amd64.deb

Optionally, run ./ to create a user/group pair for privilege lowering.

(*) Note that Debian 6 (Squeeze) and older requires manual installation (see below).

Additional setup on Linux (generic)

You need to have the following dependencies installed:

Optionally, run ./ to create a user/group pair for privilege lowering.

(*) Note that some Linux distributions such as Debian Squeeze or CentOS 6 may only ship libevent 1.4, in this case you will have to manually compile the latest 2.0.x version:

tar -xf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
make install

Additional setup on FreeBSD

Install the DMD compiler and vibe.d's dependencies using portupgrade or a similar mechanism:

sudo portupgrade -PN devel/libevent2 devel/pkgconf

Optionally, run ./ to create a user/group pair for privilege lowering.

Available versions

0.8.0-beta.5 0.8.0-beta.4 0.8.0-beta.3 0.8.0-beta.2 0.8.0-beta.1 0.8.0-alpha.1 0.7.32-alpha.1 0.7.31 0.7.31-rc.3 0.7.31-rc.2 0.7.31-rc.1 0.7.31-beta.2 0.7.31-beta.1 0.7.31-alpha.1 0.7.30 0.7.30-rc.2 0.7.30-rc.1 0.7.30-beta.1 0.7.30-alpha.5 0.7.30-alpha.4 0.7.30-alpha.3 0.7.30-alpha.2 0.7.30-alpha.1 0.7.29 0.7.29-rc.1 0.7.29-beta.2 0.7.29-beta.1 0.7.29-alpha.3 0.7.29-alpha.2 0.7.29-alpha.1 0.7.28 0.7.28-alpha.1 0.7.27 0.7.27-rc.2 0.7.27-rc.1 0.7.27-beta.1 0.7.27-alpha.3 0.7.27-alpha.2 0.7.27-alpha.1 0.7.26 0.7.26-rc.3 0.7.26-rc.2 0.7.26-rc.1 0.7.26-beta.1 0.7.26-alpha.3 0.7.26-alpha.2 0.7.26-alpha.1 0.7.25 0.7.25-rc.1 0.7.25-alpha.1 0.7.24 0.7.24-rc.2 0.7.24-rc.1 0.7.24-beta.4 0.7.24-beta.3 0.7.24-beta.2 0.7.24-beta.1 0.7.23 0.7.23-rc.4 0.7.23-rc.3 0.7.23-rc.2 0.7.23-rc.1 0.7.23-beta.2 0.7.23-beta.1 0.7.22 0.7.22-rc.1 0.7.21 0.7.21-rc.4 0.7.21-rc.3 0.7.21-rc.2 0.7.21-rc.1 0.7.21-beta.4 0.7.21-beta.3 0.7.21-beta.2 0.7.21-beta.1 0.7.21-alpha.4 0.7.21-alpha.3 0.7.21-alpha.2 0.7.21-alpha.1 0.7.20 0.7.20-rc.2 0.7.20-rc.1 0.7.20-beta.3 0.7.20-beta.2 0.7.20-beta.1 0.7.20-alpha.1 0.7.19 0.7.19+openssl-1.0.1g 0.7.19-rc.4 0.7.19-rc.3 0.7.19-rc.2 0.7.19-rc.1 0.7.19-beta.4 0.7.19-beta.3 0.7.19-beta.2 0.7.19-beta.1 0.7.18 0.7.18-rc.3 0.7.18-rc.2 0.7.18-rc.1 ~master ~typedef_serialization ~pull1676 ~issue_1732_tcp_urls ~issue_1726_tcp_close ~http2-botan-cleanup ~http2-botan ~0.7.x