<rdf:Description rdf:about="http://snarfed.org/space/p4">
  <dc:title> p4 </dc:title>
  <dc:creator> Ryan Barrett &lt;snarfed at ryanb dot org&gt; </dc:creator>
  <dc:date> 2003-01-01T05:00:00Z </dc:date>
  <dc:language> en </dc:language>
  <dc:format> text/html </dc:format>
  <dc:rights> Copyright 2002-2009 Ryan Barrett </dc:rights>

  <content>
    <p><a href="/space/p4"><img src="/space/notes.png" alt="/space/notes.png" title="" /></a></p>

<p>For the impatient: <br />
<a href="/space/p4-0.3.1.tar.bz2">Download P4 0.3.1</a> <br />
<a href="/space/p4proposal.html">Original project proposal</a> <br />
<a href="/space/p4_poster/index.html">Poster (with diagrams)</a> <br />
<a href="/space/p4protocol.txt">Protocol specification</a></p>

<p><a href="/space/p4">P4</a> is a fully functional, self-organizing overlay network similar
to <a href="http://rfc-gnutella.sourceforge.net/">Gnutella</a> and
<a href="http://freenet.sf.net/">Freenet</a>. However, P4 differs in that it provides an
API for developing plugin applications on top of the network. P4 handles the
networking and exports functionality for unicast, multicast, user and plugin
discovery, and strong encryption and authentication. This frees developers from
worrying about networking, and allows them to focus on building real
functionality.</p>

<p>Since its release in early 2001, P4 has been surpassed by other general-purpose
overlay platforms such as <a href="http://jxta.org/">JXTA</a>,
<a href="http://groove.net/">Groove</a>, and Microsoft's <a href="/space/windows+p2p">Windows Peer-to-Peer
SDK</a>. Furthermore, <a href="http://overnet.com/">many</a>
<a href="http://freedom.net/">other</a> <a href="http://freehaven.net/">file</a>
<a href="http://mnet.sourceforge.net/">sharing</a>
<a href="http://en.wikipedia.org/wiki/FastTrack">networks</a> have long been superior to P4
in terms of routing algorithms, bandwidth management, anonymity, maturity, etc.
(They're mostly dedicated file-sharing networks, though, not general-purpose
networks.)</p>

<p>For these reasons, P4 is not currently as competitive as it was a few years ago.
However, it's still a viable alternative, especially if you're looking for a
simple, lightweight, embeddable networking solution. P4 requires only <a href="http://en.wikipedia.org/wiki/Berkeley_sockets">Berkeley
sockets</a> and
<a href="http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html">pthreads</a>,
and the shared library weighs in at a slim 270K.</p>

<p>P4 has been tested on RedHat 9, SUSE 8, Debian stable, Solaris/SunOS 5.8, and
Mac OS X. It should build on most *nix platforms without much modification.
Windows Visual Studio project files are included for building on Windows, but
they're not currently maintained.</p>

<p>P4 is distributed under the <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>.
Copyright 2001-2004 <a href="http://keeda.stanford.edu/~kash">Ken Ashcraft</a>, <a href="http://snarfed.org/">Ryan
Barrett</a>, <a href="http://maulik.net/">Maulik Shah</a>, and
<a href="http://cs.stanford.edu/~nstoll">Nathan Stoll</a>.</p>

<p>See also:</p>

<ul>
<li><a href="/space/synchronizing mp3 playback">synchronizing mp3 playback</a></li>
<li><a href="/space/libmsntp">libmsntp</a></li>
<li><a href="/space/libwebserver shutdown patch">libwebserver shutdown patch</a></li>
</ul>

  </content>

  <rdf:Seq>

  </rdf:Seq>
</rdf:Description>
</rdf:RDF>
