Brunet
From BoykinWiki
Contents |
Introduction
Brunet is a Free Software (GPL licensed) library for P2P networking written in C# and developed using Mono, but it also runs on Microsoft’s .Net platform. Here are the basic features of Brunet:
- Network transports are abstracted as Edge objects. We have TCP, UDP and TLS/SSL transports now.
- Completely distributed UDP NAT traversal (TCP NAT traversal is a to-do item).
- Implementation of Chord/Kleinberg/Symphony type ring topology for routing.
- DHT implementation.
- Both packet based and RPC based communication primitives. New protocols are easy to add using one or the other of these approaches.
- XML-RPC bridge to allow calling or serving RPC methods with XML-RPC clients or servers. We have examples of this using standard Python.
- Distributed tunneling system to maintain topology in the presence of some routing difficulties (untraversable NATs, BGP outages, firewalls, etc.).
Getting the Code
We use the Mercurial source code management system. Mercurial is available for most platforms and easy to use. See their quick start guide if you are new to Mercurial (but familiar with SCM systems).
The mainline of Brunet is found in the following repository: http://boykin.acis.ufl.edu/hgwebdir.cgi/boykin/brunet1-dev/ which you can browse and search using a web browser.
To get and build Brunet:
hg clone http://boykin.acis.ufl.edu/hgwebdir.cgi/boykin/brunet1-dev/ cd brunet1-dev nant
Developers can see examples of how to use Brunet in the src/apps directory. You will just need to link to Brunet.dll which is built by the above commands in the lib/ directory.
Documentation
The source code is documented with doxygen and can be browsed online: Brunet Documentation. You can find a complete list of documentation at Brunet/IPOP_Documentation_Status.
Development Branches
There are several Brunet_Feature_Branches where new features are first tested before moved into the main repository.
Other Brunet Resources
Brunet was initially developed at UCLA.
