View on GitHub


libproxy is a library that provides automatic proxy configuration management.

Download this project as a .zip file Download this project as a tar.gz file

The Problem

Problem statement: Applications suck at correctly and consistently supporting proxy configuration.

Proxy configuration is problematic for a number of reasons:

  1. There are a variety of places to get configuration information
  2. There are a variety of proxy types
  3. Proxy auto-configuration (PAC) requires Javascript (which most applications don't have)
  4. Automatically determining PAC location requires an implementation of the WPAD protocol

These issues make programming with support for proxies hard. Application developers only want to answer the question: Given a network resource, how do I reach it? Because this is their concern, most applications just give up and try to read the proxy from an environment variable. This is problematic because:

1 Given the increased use of mobile computing, network switching frequently occurs during the lifetime of an application 1 Each application is required to implement the (non-trivial) WPAD and PAC protocols, including a Javascript engine 1 It prevents a network administrator from locking down settings on a particular host or user 1 In most cases, the environmental variable is almost never correct by default

The Solution

libproxy exists to answer the question: Given a network resource, how do I reach it? It handles all the details, enabling you to get back to programming.

GNOME? KDE? Command line? WPAD? PAC? Network changed? It doesn't matter! Just ask libproxy what proxy to use: you get simple code and your users get correct, consistant behavior and broad infrastructure compatibility. Why use libproxy?

libproxy offers the following features:

Frequently Asked Questions