Polipo is no longer maintained

When it was first written, Polipo was probably the best HTTP proxy available. Since then, the web has changed, and HTTP proxies are no longer useful: most traffic is encrypted, and a web proxy merely acts as a dumb intermediary for encrypted traffic.

Polipo will no longer be maintained. Here are some alternatives:

if you need your HTTP traffic to originate from a remote IP address, use a VPN or a SOCKS5 proxy;

if you need better caching than your browser provides, use a better browser;

if you need to share your cache between different user-agents or different users, you're out of luck;

if you need HTTP/1.1 pipelining, you're out of luck. I hear that the answer is "use HTTP/2 instead", but HTTP/2 will remain only moderately useful until it has good support for either unencrypted connections or opportunistic encryption.

Polipo — a caching web proxy

Polipo is a small and fast caching web proxy (a web cache, an HTTP proxy, a proxy server). While Polipo was designed to be used by one person or a small group of people, there is nothing that prevents it from being used by a larger group.

Polipo has some features that are, as far as I know, unique among currently available proxies:

Polipo will use HTTP/1.1 pipelining if it believes that the remote server supports it, whether the incoming requests are pipelined or come in simultaneously on multiple connections (this is more than the simple usage of persistent connections, which is done by e.g. Squid);

Squid); Polipo will cache the initial segment of an instance if the download has been interrupted, and, if necessary, complete it later using Range requests;

Polipo will upgrade client requests to HTTP/1.1 even if they come in as HTTP/1.0, and up- or downgrade server replies to the client's capabilities (this may involve conversion to or from the HTTP/1.1 chunked encoding);

Polipo has complete support for IPv6 (except for scoped (link-local) addresses).

Polipo can optionally use a technique known as Poor Man's Multiplexing to reduce latency even further.

In short, Polipo uses a plethora of techniques to make web browsing (seem) faster.

What Polipo is useful for

By virtue of being a (mostly) compliant HTTP/1.1 proxy, Polipo has all the uses of traditional web proxies. It is typically used as a web proxy for a single computer or a small network, although it has successfully been used by larger groups.

Because Polipo is small and easy to install (just copy the polipo binary), it has applications beyond those of traditional web proxies. I usually copy Polipo to whatever machine I happen to be using and do all my browsing through it (with no on-disk cache). I've also occasionally used it to cross firewalls that were misconfigured or overly restrictive.

Since it can speak both IPv4 and IPv6, Polipo can be used as a bridge between the IPv4 and IPv6 Internets: to allow an IPv6-only host to access IPv4 servers or vice versa.

Since it can speak the SOCKS protocol, Polipo can be used together with the tor anonymising network.

Because it has primitive filtering capabilities, Polipo can be used to remove advertisements and improve privacy. Unless you're trying to provide service to a full network, however, you will likely be happier with a suitable browser extension, such as AdBlock or Ghostery.

Documentation

Please read:

Download

Polipo sources

Download polipo sources.

The current tree is available from a Git repository:

git clone https://github.com/jech/polipo.git

Or Browse on Github.

Please see the FAQ for more information about the current tree.

Contributed binaries and BSD ports

Please note that Polipo builds out of the box on all of the systems mentioned below — and many more. However, the packages below tend to include lovingly crafted cron scripts and configuration files.

Debian packages are apt-gettable.

Ubuntu packages are apt-gettable.

An OpenWRT package is opkg-able.

A Gentoo ebuild is emergeable.

FreeBSD port, contributed by Frank Behrens.

RedHat (RHEL/Centos) RPMs contributed by Oliver Niesner.

RedHat (Fedora) RPMs contributed by Jason F. McBrayer.

DarwinPorts port for Mac OS X.

In addition, an experimental Windows binary might be available in my download area.

While I have looked at some of these packages, I didn't check all of them exhaustively. And of course I only examined the source packages, not the binaries.

Mailing list

Announcements of new versions of Polipo are sent to the Polipo-users mailing list. Any discussion related to Polipo is welcome on this list.

The list archives are available from SourceForge by HTTP (slow and unreliable), from Gmane by HTTP (faster) and from Gmane by NNTP (even faster, but then, I'm using a smart newreader and a poor web browser).

You may also be interested in at Polipo's freshmeat page, Polipo's Sourceforge page.

Benchmarks

Here are the results of a completely unscientific benchmark of proxy behaviour.

A more scientific web server benchmark; this only measures the behaviour of Polipo when used as a web server.

References