P4 is a fully functional, self-organizing overlay network similar
to Gnutella and
Freenet. 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.
Since its release in early 2001, P4 has been surpassed by other general-purpose
overlay platforms such as JXTA,
Groove, and Microsoft’s Windows Peer-to-Peer
SDK. Furthermore, manyotherfilesharingnetworks 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.)
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 Berkeley
sockets and
pthreads,
and the shared library weighs in at a slim 270K.
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.
p4
updated 8/4/2010
For the impatient:
Download P4 0.3.1
Original project proposal
Poster (with diagrams)
Protocol specification
P4 is a fully functional, self-organizing overlay network similar to Gnutella and Freenet. 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.
Since its release in early 2001, P4 has been surpassed by other general-purpose overlay platforms such as JXTA, Groove, and Microsoft’s Windows Peer-to-Peer SDK. Furthermore, many other file sharing networks 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.)
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 Berkeley sockets and pthreads, and the shared library weighs in at a slim 270K.
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.
P4 is distributed under the GPL. Copyright 2001-2004 Ken Ashcraft, Ryan Barrett, Maulik Shah, and Nathan Stoll.
See also: