Architecture
Starting with release 0.5.0 Libproxy is making use of glib. glib has many advantages and helps to get rid of one of the major issues we have had with previous versions of Libproxy. To name a few advantages:
- Testing Framework
- Make use of existing plugin loader
- Automatic documentation out of code
- Gobject Introspection bindings for almost every programming language
Plugin types
Libproxy is using internal plugins to extend it’s knowledge about different configuration options and handling of PAC files. Most of those plugins are configuration plugins:
- config-env
- config-gnome
- config-kde
- config-osx
- config-sysconfig
- config-windows
Then there is only one pacrunner plugin which handles parsing of JS PAC files:
- pacrunner-duktape
Configuration plugin priority
Configuration plugins are executed in a specific priority:
- PX_CONFIG_PRIORITY_FIRST (highest)
- PX_CONFIG_PRIORITY_DEFAULT
- PX_CONFIG_PRIORITY_LAST (lowest)
Highest priority is used in config-env
and lowest priority in
config-sysconfig
. All the other plugins are running on default priority.
Configuration plugin enforcement
In case you want to use a specific configuration plugin for a given application,
you are able to overwrite the priority. Therefore set a environment variable
PX_FORCE_CONFIG=config-name
and libproxy will just use this configuration plugin.