Skip to main content

Use requests to talk HTTP via a UNIX domain socket

Project description

Latest Version on PyPI https://github.com/msabramo/requests-unixsocket/actions/workflows/ci-cd.yml/badge.svg?event=push

Use requests to talk HTTP via a UNIX domain socket

Usage

Explicit

You can use it by instantiating a special Session object:

import json

import requests_unixsocket

session = requests_unixsocket.Session()

r = session.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
registry_config = r.json()['RegistryConfig']
print(json.dumps(registry_config, indent=4))

Implicit (monkeypatching)

Monkeypatching allows you to use the functionality in this module, while making minimal changes to your code. Note that in the above example we had to instantiate a special requests_unixsocket.Session object and call the get method on that object. Calling requests.get(url) (the easiest way to use requests and probably very common), would not work. But we can make it work by doing monkeypatching.

You can monkeypatch globally:

import requests_unixsocket

requests_unixsocket.monkeypatch()

r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
assert r.status_code == 200

or you can do it temporarily using a context manager:

import requests_unixsocket

with requests_unixsocket.monkeypatch():
    r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
    assert r.status_code == 200

Abstract namespace sockets

To connect to an abstract namespace socket (Linux only), prefix the name with a NULL byte (i.e.: 0) - e.g.:

import requests_unixsocket

session = requests_unixsocket.Session()
res = session.get('http+unix://\0test_socket/get')
print(res.text)

For an example program that illustrates this, see examples/abstract_namespace.py in the git repo. Since abstract namespace sockets are specific to Linux, the program will only work on Linux.

See also

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

requests_unixsocket-0.4.1.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

requests_unixsocket-0.4.1-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file requests_unixsocket-0.4.1.tar.gz.

File metadata

  • Download URL: requests_unixsocket-0.4.1.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for requests_unixsocket-0.4.1.tar.gz
Algorithm Hash digest
SHA256 b2596158c356ecee68d27ba469a52211230ac6fb0cde8b66afb19f0ed47a1995
MD5 a45dc2284ad8f8cb57579c8af4257aec
BLAKE2b-256 228044636b363e75af7f5e6ac0571137466fec66e47016179139d0019a453ab7

See more details on using hashes here.

Provenance

The following attestation bundles were made for requests_unixsocket-0.4.1.tar.gz:

Publisher: ci-cd.yml on msabramo/requests-unixsocket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file requests_unixsocket-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for requests_unixsocket-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 60c4942e9dbecc2f64d611039fb1dfc25da382083c6434ac0316dca3ff908f4d
MD5 e504a042c01c9dc9d4eed32c18c9e9fc
BLAKE2b-256 6386df4771915e64a564c577ea2573956861c9c9f6c79450b172c5f9277cc48a

See more details on using hashes here.

Provenance

The following attestation bundles were made for requests_unixsocket-0.4.1-py3-none-any.whl:

Publisher: ci-cd.yml on msabramo/requests-unixsocket

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page