Skip to content
NAT Traversal techniques for p2p communication
Branch: master
Clone or download
povilasb and ustulation More tests (#94)
* fix/docs: fix mio types we use

* test/udp_rendezvous_server: add integration test;
  also exposed UdpRendezvousClient (not as a crate API though,
  only for internal modules for testing).

* make UdpRendezvousServer return it's listen address (in case
  someone specifies port 0 for it)

* fixed UdpRendezvousServer on Windows where the client tried to
  connect with the server using IP address.

* fix/ci: skip rustfmt on Windows

We hit the rustfmt bug: rust-lang/rustfmt#1873 .
Currently, rustfmt fails to format when path attribute has relative

Usually, our code does not have too much windows specific code and in
this case there's no such code at the moment. So, it's the easiest fix
is to disable rustfmt on Windows for now hoping for the fix in the future.
Latest commit c7f99c7 Nov 27, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples feat/queued-notifications: added a queued-notifier Nov 18, 2018
src More tests (#94) Nov 27, 2018
tests More tests (#94) Nov 27, 2018
.gitignore Initial commit. Starts ground work on udp Feb 19, 2017
.travis.yml More tests (#94) Nov 27, 2018
Cargo.toml feat/queued-notifications: added a queued-notifier Nov 18, 2018
LICENSE-MIT perf/udp-puncher: release connection-chooser faster Oct 15, 2018 chore/ci: update ci files Oct 17, 2018
pre-commit-git-hook refactor/dependencies: update dependencies Aug 4, 2017
rustfmt.toml chore/rustfmt: apply rustfmt 0.99.1-stable Oct 11, 2018

P2P NAT-Traversal

Crate Documentation Linux/OSX/Windows
Documentation Build Status

The goal of this crate is to provide a robust and crypto-secure NAT traversal for peer to peer connection. It assumes publicly reachable rendezvous servers are provided. The server code itself is in the crate too, so the crate can either be used to deploy a server or used for peer to peer client communication or both simultaneously - for e.g. if you run the server on a port forwarded endpoint, it will be publicly available for others to rendezvous while you could choose normal NAT traversal mechanisms to communicate with other peers.

Please refer to the documentation above for detailed explanation. The examples and the integration tests show how the crate can be used.

You can’t perform that action at this time.