Skip to content
Vowpal Wabbit is a machine learning system which pushes the frontier of machine learning with techniques such as online, hashing, allreduce, reductions, learning2search, active, and interactive learning.
C++ C# Perl Python Shell Java Other
Find file
New pull request
Failed to load latest commit information.
R modified the readme for installation instructions of r.vw
acinclude.d macosx_c++11_clang
c_test Consume boost and zlib through nugets instead of sources. This is a p…
cluster another automake fix
cs addressed code review comments
cs_test cleanup
cs_unittest fix VS compile warnings
demo more #bit for dep demo
deploy_vw Consume boost and zlib through nugets instead of sources. This is a p…
explore astyle applied
java Updating to newest docker version on mac
library fix automake
python retain unaffected initialized parameters when calling set_params, cle…
test update test
utl Merge branch 'master' of
vowpalwabbit fix holdout with small datasets on --ftrl
vw_clr fix windows compile warnings
.editorconfig updated indent_brace_style to Horstmann
.gitignore ignore emacs backup files
.gitkeep added missing files
.travis.yml Merge pull request #865 from danmelamed/master
AUTHORS Updated AUTHORS - list has grown a lot since last time
ChangeLog converted to use autotools
LICENSE merged john's changes python pip installable vowpal wabbit package
Makefile make only vw target by default Merge pull request #860 from willnewton/pkgconfig
NEWS converted to use autotools
README.deploy.txt Add an optional deploy_vw project to the VW solution/ -no_static to +no_static updated windows build
appveyor.yml removed appveyor logger better CXX processing Add support for pkg-config
deployvw.bat fix typo Add support for pkg-config Add support for pkg-config added missing files
setup.cfg python pip installable vowpal wabbit package add description

Copyright (c) by respective owners including Yahoo!, Microsoft, and
individual contributors. All rights reserved.  Released under a BSD (revised)
license as described in the file LICENSE.

Build Status Windows Build Status Coverage Status

This is the vowpal wabbit fast online learning code. For Windows, look at

Prerequisite software

These prerequisites are usually pre-installed on many platforms. However, you may need to consult your favorite package manager (yum, apt, MacPorts, brew, ...) to install missing software.

  • Boost library, with the Boost::Program_Options library option enabled.
  • GNU autotools: autoconf, automake, libtool, autoheader, et. al. This is not a strict prereq. On many systems (notably Ubuntu with libboost-program-options-dev installed), the provided Makefile works fine.
  • (optional) git if you want to check out the latest version of vowpal wabbit, work on the code, or even contribute code to the main project.

Getting the code

You can download the latest version from here. The very latest version is always available via 'github' by invoking one of the following:

## For the traditional ssh-based Git interaction:
$ git clone git://

## For HTTP-based Git interaction
$ git clone


You should be able to build the vowpal wabbit on most systems with:

$ make
$ make test    # (optional)

If that fails, try:

$ ./
$ make
$ make test    # (optional)
$ make install

Note that ./ requires automake (see the prerequisites, above.)

./'s command line arguments are passed directly to configure as if they were configure arguments and flags.

Note that ./ will overwrite the supplied Makefile, so keeping a copy of Makefile may be a good idea before running

Be sure to read the wiki: for the tutorial, command line options, etc.

The 'cluster' directory has it's own documentation for cluster parallel use, and the examples at the end of test/Runtests give some example flags.

C++ Optimization

The default C++ compiler optimization flags are very aggressive. If you should run into a problem, consider running configure with the --enable-debug option, e.g.:

$ ./configure --enable-debug

or passing your own compiler flags via the CXXOPTIMIZE make variable:

$ make CXXOPTIMIZE="-O0 -g"

Ubuntu/Debian specific info

On Ubuntu/Debian/Mint and similar the following sequence should work for building the latest from github:

# -- Get libboost program-options:
apt-get install libboost-program-options-dev

# -- Get the python libboost bindings (python subdir) - optional:
apt-get install libboost-python-dev

# -- Get the vw source:
git clone git://

# -- Build:
cd vowpal_wabbit
make test       # (optional)
make install

Ubuntu advanced build options (clang and static)

If you prefer building with clang instead of gcc (much faster build and slighly faster executable), install clang and change the make step slightly:

apt-get install clang

make CXX=clang++

A statically linked vw executable that is not sensitive to boost version upgrades and can be safely copied between different Linux versions (e.g. even from Ubuntu to Red-Hat) can be built and tested with:

make CXX='clang++ -static' clean vw test     # ignore warnings

Mac OS X-specific info

OSX requires glibtools, which is available via the brew or MacPorts package managers.

Complete brew install of 8.0

brew install vowpal-wabbit

The homebrew formula for VW is located on github.

brew install dependencies + manual install of vowpal wabbit

brew install libtool
brew install boost --with-python


## Install glibtool and other GNU autotool friends:
$ port install libtool autoconf automake

## Build Boost for Mac OS X 10.8 and below
$ port install boost +no_single +no_static +openmpi +python27 configure.cxx_stdlib=libc++ configure.cxx=clang++

## Build Boost for Mac OS X 10.9 and above
$ port install boost +no_single +no_static +openmpi +python27

Mac OS X 10.8 and below: configure.cxx_stdlib=libc++ and configure.cxx=clang++ ensure that clang++ uses the correct C++11 functionality while building Boost. Ordinarily, clang++ relies on the older GNU g++ 4.2 series header files and stdc++ library; libc++ is the clang replacement that provides newer C++11 functionality. If these flags aren't present, you will likely encounter compilation errors when compiling vowpalrabbit/ These error messages generally contain complaints about std::to_string and std::unique_ptr types missing.

To compile:

$ sh --enable-libc++
$ make
$ make test    # (optional)
Something went wrong with that request. Please try again.