XUProxy - an eXtensible Universal Proxy
XUProxy is an extensible multi-protocol proxy written in Python and based on the Twisted
framework. It provides an API for protocol plugins that is based on
Twisted's protocol API, and an API for "filter" plugins that can modify
(or just monitor) the data being passed in both directions between the
server and client.
SourceForge project page (bug tracker, forums, file releases, etc.)
Features:
Current:
Core:
Multiple dynamically loadable protocol plugins
Dynamically loadable filter plugins
Protocols:
HTTP (currently no support for HTTPS)
HTTP:
Content and header filtering compatible with Proxomitron filters and blocklists
Proxomitron-like URL commands
Local pseudo-domains implemented with plugins (for things like serving local files and generating redirect responses)
Decoding and re-encoding of e.g. gzip/deflate-encoded response bodies in order to allow filters to operate on them
Support for chaining to a parent HTTP proxy
Planned:
Core:
Support for external front ends
Support for SOCKS proxies
Access control?
Protocols:
HTTPS
FTP?
POP3?
HTTP:
Caching
Logging of headers and data
Virus scanning?
Freezing animated GIF images
Authentication
Front end:
Both GUI and web-based front ends
Installation of protocol and filter plugins
Configuration of individual plugins
Listing of active connections
Support for manually killing individual connections
Real-time display of data being transferred
Downloads
XUProxy 0.1.0 can be downloaded from the file release area.
A Mercurial repository of the current development version is also available.
Mailing lists
xuproxy-users General discussion about XUProxy (filters, installation, etc.)
xuproxy-devel Discussion about XUProxy development