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. WWW: https://libproxy.github.io/libproxy/