Skip to content
Experimental port of the VRPN core functionality to Rust.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE_1_0.txt Add files for humans. Nov 14, 2018


An async-capable port of the VRPN protocol to Rust.

Maintained at

Currently highly experimental and not entirely operational. Contributions welcome, but this is probably not ready for production. If you want production-ready VRPN, simply use the original implementation, which has been widely deployed for over a decade without a protocol-breaking change.


This library uses Rust 2018, and thus, as of 14-Nov-2018, requires the use of the "beta" channel.

Add vrpn as a dependency to your Cargo.toml file:

vrpn = "0.1.0"

Then add the following to your crate's root:

extern crate vrpn;

Right now, all the top-level APIs for connections/endpoints use Tokio for async IO, but most of the project is independent of Tokio, so an alternative IO integration could be created.

Since this isn't really ready for widespread usage, and the API is still evolving, there is not much in the way of docs. However, the files in src/bin/ can be used as examples.


There are numerous tests. The default batch can be run with

cargo test

Some tests are ignored by default because they require a running VRPN server, exposing a "NULL Tracker" named Tracker0, on the local host and default port. If you have that, then you can run

cargo test -- --ignored

to run every test.


Please read for details on our code of conduct, and the process for submitting pull requests to us.

Primary Authors and Contributors

  • Ryan Pavlik - Initial work - @rpavlik on many platforms


The license for most of the code in this repository is the Boost Software License 1.0 - this is a very permissive free-software licence also used by the mainline VRPN repository. This license is used to permit free interchange of code between this codebase and the mainline C++ codebase.

One file (as of the time of this writing) is under the OSI-approved MIT license, because it is based closely on some sample code from the Tokio async framework for Rust.

Dependencies used via Cargo have their own licenses.

All files have SPDX-License-Identifier tags.

All contributions will be considered to be under the license noted in the changed file's or files' SPDX tags.


  • Collabora for supporting Ryan's development and maintenance of this code in the course of his work.
  • Thanks and acknowledgements to Russ M. Taylor, III, and the other authors and contributors of the VRPN package, for pioneering a widely-used de-facto standard in input/output, useful particularly but not exclusively in immersive computing.
  • Thanks to PurpleBooth's excellent template/advice for structuring a README

Copyright and License for this file

For this file only:

Initially written by Ryan Pavlik. Copyright 2018 Collabora, Ltd.

SPDX-License-Identifier: CC-BY-4.0

You can’t perform that action at this time.