Official vibe.d development
D Other
Latest commit 250ba44 Feb 26, 2017 @s-ludwig s-ludwig Make foreach iteration over MongoCurser infer safety attributes.
Now uses range based iteration - note that this is a breaking change for code that iterates with an additional index variable. This now needs to use .byPair.
Permalink
Failed to load latest commit information.
core Avoid vibe.utils.memory deprecation message when building vibe-d:core. Feb 15, 2017
crypto Fix initialization success condition for CryptAcquireContext. Fixes #… Feb 1, 2017
data Make foreach iteration over MongoCurser infer safety attributes. Feb 26, 2017
diet vibe-core interface compatibility + safe/nothrow annotations + some m… Jan 14, 2017
examples Add web authentication example Feb 9, 2017
http Use ranges for DictionaryList foreach iteration. Feb 26, 2017
inet Mark more functions as safe. Jan 31, 2017
lib Upgrade OpenSSL Windows binaries to 1.0.1m. May 19, 2015
mail vibe-core interface compatibility + safe/nothrow annotations + some m… Jan 14, 2017
mongodb Make foreach iteration over MongoCurser infer safety attributes. Feb 26, 2017
redis Merge remote-tracking branch 'origin/0.7.x' Feb 12, 2017
source/vibe Move appmain to vibe:core. Oct 31, 2016
stream Properly implement the ConnectionStream interface for TaskPipe. Feb 14, 2017
tests Fix race-condition in TCP test. Jan 30, 2017
textfilter Mark large parts of the API safe/nothrow to make it compatible with v… Jan 14, 2017
utils Use ranges for DictionaryList foreach iteration. Feb 26, 2017
web Fix REST JS client error hander callback code. Fixes #1680. Feb 16, 2017
.editorconfig add *.json to .editorconfig Jul 28, 2014
.gitignore Ignore .exe files for GIT. Oct 6, 2015
.travis.yml Update compiler support list. Jan 31, 2017
CHANGELOG.md Update change log. Feb 12, 2017
CONTRIBUTING.md Add CONTRIBUTING.md. Aug 22, 2014
LICENSE.txt Update license copyright date. Feb 19, 2016
LICENSE_DE.txt Update license copyright date. Feb 19, 2016
README.md Add Windows build/test status badge. Feb 1, 2017
appveyor.yml Fix AppVeyor test configuration selection. Feb 1, 2017
dub.sdl Add vibe-core configuration and adjust CI scripts. Jan 14, 2017
meson.build Roughly fix the file list in the Meson build description. Nov 10, 2016
setup-freebsd.sh Remove references to the removed "vibe" script. Jun 26, 2013
setup-linux.sh Remove left over traces of the "vibe" script. Fixes dlang/dub#292. Apr 21, 2014
setup-mac.sh Another pass over the setup scripts. Jun 26, 2013
todo.txt Update the (mostly irrelevant) todo.txt document. Nov 7, 2016
travis-ci.sh Let the Travis-CI script free up disk space in-between. Feb 1, 2017

README.md

vibe.d

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 http://vibed.org/ for more information.

DUB Package Posix Build Status Windows Build Status

Support

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.073.0
  • DMD 2.072.2
  • DMD 2.071.2
  • DMD 2.070.2
  • LDC 1.1.0 (currently still in beta, FE: 2.071.2)
  • LDC 1.0.0 (FE: 2.070.2)

Up to 0.7.31+:

  • DMD 2.069.2

Up to 0.7.30:

  • DMD 2.068.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

Installation

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>
dub

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 https://raw.githubusercontent.com/Homebrew/install/master/install)"
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 http://dlang.org/download.html.

Optionally, run ./setup-mac.sh 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 "http://downloads.dlang.org/releases/2.x/2.068.2/dmd_2.068.2-0_i386.deb"
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 "http://downloads.dlang.org/releases/2.x/2.068.2/dmd_2.068.2-0_amd64.deb"
sudo dpkg -i dmd_2.068.2-0_amd64.deb

Optionally, run ./setup-linux.sh 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 ./setup-linux.sh 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:

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar -xf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make
make install
ldconfig

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 ./setup-freebsd.sh to create a user/group pair for privilege lowering.