This is the core source code repository for the Vanadium project.

For documentation about how to install and use Vanadium,
visit http://v.io in your web browser.

Unless otherwise noted, the Vanadium source files are distributed
under the BSD-style license found in the LICENSE file.
