romis2012/aiohttp-socks

Proxy (HTTP, SOCKS) connector for aiohttp

Python

243

150 commits

updated Aug 12, 2026

See the code

README

aiohttp-socks

CI Coverage Status PyPI version versions

The aiohttp-socks package provides a proxy connector for aiohttp. Supports SOCKS4(a), SOCKS5(h), HTTP (CONNECT) as well as Proxy chains. It uses python-socks for core proxy functionality.

Requirements

  • Python >= 3.9
  • aiohttp >= 3.10.0
  • python-socks[asyncio] >= 2.4.3

Installation

pip install aiohttp_socks

Usage

Simple usage

import aiohttp
from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector


async def fetch(url):
    connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080')
    
    ### or use ProxyConnector constructor
    # connector = ProxyConnector(
    #     proxy_type=ProxyType.SOCKS5,
    #     host='127.0.0.1',
    #     port=1080,
    #     username='user',
    #     password='password',
    #     rdns=True # default is True for socks5
    # )
    
    ### proxy chaining (since ver 0.3.3)
    # connector = ChainProxyConnector.from_urls([
    #     'socks5://user:password@127.0.0.1:1080',
    #     'socks4://127.0.0.1:1081',
    #     'http://user:password@127.0.0.1:3128',
    # ])
    async with aiohttp.ClientSession(connector=connector) as session:
        async with session.get(url) as response:
            return await response.text()

Why yet another SOCKS connector for aiohttp

Unlike aiosocksy, aiohttp_socks has only single point of integration with aiohttp. This makes it easier to maintain compatibility with new aiohttp versions.

aiohttp
asyncio
http
proxy
python
socks4
socks5

romis2012/aiohttp-socks

Proxy (HTTP, SOCKS) connector for aiohttp

Python

243

150 commits

updated Aug 12, 2026

See the code

README

aiohttp-socks

CI Coverage Status PyPI version versions

The aiohttp-socks package provides a proxy connector for aiohttp. Supports SOCKS4(a), SOCKS5(h), HTTP (CONNECT) as well as Proxy chains. It uses python-socks for core proxy functionality.

Requirements

  • Python >= 3.9
  • aiohttp >= 3.10.0
  • python-socks[asyncio] >= 2.4.3

Installation

pip install aiohttp_socks

Usage

Simple usage

import aiohttp
from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector


async def fetch(url):
    connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080')
    
    ### or use ProxyConnector constructor
    # connector = ProxyConnector(
    #     proxy_type=ProxyType.SOCKS5,
    #     host='127.0.0.1',
    #     port=1080,
    #     username='user',
    #     password='password',
    #     rdns=True # default is True for socks5
    # )
    
    ### proxy chaining (since ver 0.3.3)
    # connector = ChainProxyConnector.from_urls([
    #     'socks5://user:password@127.0.0.1:1080',
    #     'socks4://127.0.0.1:1081',
    #     'http://user:password@127.0.0.1:3128',
    # ])
    async with aiohttp.ClientSession(connector=connector) as session:
        async with session.get(url) as response:
            return await response.text()

Why yet another SOCKS connector for aiohttp

Unlike aiosocksy, aiohttp_socks has only single point of integration with aiohttp. This makes it easier to maintain compatibility with new aiohttp versions.

aiohttp
asyncio
http
proxy
python
socks4
socks5

Project health

Overall

3.4/10

Maintained

3/10

Code review

1/10
OpenSSF Scorecard

Latest release

0.12.0 · Aug 12, 2026

Releases this year

3

Significant stargazers

Ivan Malison

146 followers · starred Apr 2023

D. Bohdan

273 followers · starred Mar 2026

Paul m. p. Peny

148 followers · starred Oct 2023

zsugabubus

11 followers · starred Sep 2021