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

SourceForge.net Logo