A package that allows for client-side OHTTP-wrapping over HTTP communication
Project description
ohttpy Package
Introduction
This package allows for client-side OHTTP-wrapping over HTTP communication. It acheives this by providing drop-in replacement classes for requests.Session and httpx.BaseTransport classes that abstract the OHTTP layer.
NOTE: This package utilizes a modified Rust library that implements OHTTP and relies on the chunked OHTTP protocol which has not been ratified into a standard at the time of writing.
NOTE: At the time of writing, this package is currently under active development and therefore, only compatible with chunked-OHTTP gateways that advertise public keys in a specific fashion.
Requests Session Example
To use OHTTP in a requests.Session setting, simply replace the object construction with ohttp.Session:
import ohttpy
# Create ohttpy session that inherits from requests.Session.
session = ohttpy.Session()
# Use session like a request.Session.
response = session.post("http://ohttp-server/path/to/post", data="test data")
print(response.text)
HTTPX Transport Example
To use OHTTP in a httpx.Transport setting, simply replace the object construction with ohttp.Transport:
import httpx
import ohttpy
# Initialize httpx client with the ohttpy Transport that inherits from httpx.Transport
httpx_client = httpx.Client(transport=ohttpy.Transport())
# Use client as normal including chunked-encoding response support.
method = "GET"
url = "http://ohttp-server/path/to/get/"
with httpx_client.stream(method, url) as resp:
print(resp.status_code)
print(resp.headers)
for chunk in resp.stream:
print(chunk.decode(), end="")
This is also applicable to clients that utilize httpx for their HTTP communication, for example openai client:
import httpx
import openai
import ohttpy
# Initialize httpx client with the ohttpy Transport that inherits from httpx.Transport
httpx_client = httpx.Client(transport=ohttpy.Transport())
base_url = "http://ohttp-server"
api_key = "API_KEY"
# Configure OpenAI client with httpx client
client = openai.OpenAI(
api_key=api_key,
http_client=httpx_client,
base_url=base_url + "/v1")
# Use OpenAI SDK as normal for example llama chat (including stream capability)
is_stream=True
completion = client.chat.completions.create(
model="meta-llama/Llama-3.2-3B-Instruct",
messages=[
{
"role": "user",
"content": "Create a song that captures the spirit and history of cybersecurity",
}
],
temperature=0.2,
top_p=0.7,
max_tokens=1024,
stream=is_stream,
)
if is_stream:
for chunk in completion:
print(chunk.choices[0].delta.content or "", end="", flush=True)
else:
print(completion.choices[0].message.content)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ohttpy-0.1a6-cp37-abi3-win_amd64.whl.
File metadata
- Download URL: ohttpy-0.1a6-cp37-abi3-win_amd64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.7+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf4adb1e5aa0acd7a0f3739e2bfa360609aef032d5dbd07efed603d8a02cec09
|
|
| MD5 |
81577919b0cce9cfd9905bee65573b41
|
|
| BLAKE2b-256 |
bf2f279d8e49b4b707778340ec779b6899ab93dd33fbb3057cf0c09ec8f63939
|
Provenance
The following attestation bundles were made for ohttpy-0.1a6-cp37-abi3-win_amd64.whl:
Publisher:
CI.yml on Lorica-Cyber/ohttpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ohttpy-0.1a6-cp37-abi3-win_amd64.whl -
Subject digest:
bf4adb1e5aa0acd7a0f3739e2bfa360609aef032d5dbd07efed603d8a02cec09 - Sigstore transparency entry: 174626425
- Sigstore integration time:
-
Permalink:
Lorica-Cyber/ohttpy@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Branch / Tag:
refs/tags/v0.1a6 - Owner: https://github.com/Lorica-Cyber
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
CI.yml@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ohttpy-0.1a6-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: ohttpy-0.1a6-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.7+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9b5ba887da2ecaac45b1134a6e8b9583b6e00bcc821c8a273c41b70efb10a73
|
|
| MD5 |
28abede9829aaf293fb731db4b965c75
|
|
| BLAKE2b-256 |
f1e5a9fb8b65e7b4312482c1cd0599e67074cf15c0dc6296c2a8f1334215faf7
|
Provenance
The following attestation bundles were made for ohttpy-0.1a6-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
CI.yml on Lorica-Cyber/ohttpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ohttpy-0.1a6-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl -
Subject digest:
d9b5ba887da2ecaac45b1134a6e8b9583b6e00bcc821c8a273c41b70efb10a73 - Sigstore transparency entry: 174626426
- Sigstore integration time:
-
Permalink:
Lorica-Cyber/ohttpy@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Branch / Tag:
refs/tags/v0.1a6 - Owner: https://github.com/Lorica-Cyber
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
CI.yml@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ohttpy-0.1a6-cp37-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: ohttpy-0.1a6-cp37-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.7+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22026fb3768531f973d74e8a3e16b9840d69f2c52425e3588c915ca853ea516e
|
|
| MD5 |
89737b55bb5275a8201fab810974b27a
|
|
| BLAKE2b-256 |
6a84902c7b23b867682ff6bcca89dadcfafaa1780cf8d1dcc54f80ed660d3dbc
|
Provenance
The following attestation bundles were made for ohttpy-0.1a6-cp37-abi3-macosx_11_0_arm64.whl:
Publisher:
CI.yml on Lorica-Cyber/ohttpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ohttpy-0.1a6-cp37-abi3-macosx_11_0_arm64.whl -
Subject digest:
22026fb3768531f973d74e8a3e16b9840d69f2c52425e3588c915ca853ea516e - Sigstore transparency entry: 174626423
- Sigstore integration time:
-
Permalink:
Lorica-Cyber/ohttpy@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Branch / Tag:
refs/tags/v0.1a6 - Owner: https://github.com/Lorica-Cyber
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
CI.yml@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ohttpy-0.1a6-cp37-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ohttpy-0.1a6-cp37-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.7+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43a6e8e457cac73a3dfdeea7c3b05cfe14c3fdb986d62d863ee0306f05a5ecb5
|
|
| MD5 |
b2a5adc25476e5f1f4598c477cd302e4
|
|
| BLAKE2b-256 |
5421f9c4f67c45de75ca13c485c1cb881b129c442c273febcbd45cec81b209bd
|
Provenance
The following attestation bundles were made for ohttpy-0.1a6-cp37-abi3-macosx_10_12_x86_64.whl:
Publisher:
CI.yml on Lorica-Cyber/ohttpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ohttpy-0.1a6-cp37-abi3-macosx_10_12_x86_64.whl -
Subject digest:
43a6e8e457cac73a3dfdeea7c3b05cfe14c3fdb986d62d863ee0306f05a5ecb5 - Sigstore transparency entry: 174626421
- Sigstore integration time:
-
Permalink:
Lorica-Cyber/ohttpy@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Branch / Tag:
refs/tags/v0.1a6 - Owner: https://github.com/Lorica-Cyber
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
CI.yml@f9b0254312b6f99d9ca01f85f366650c2ee30561 -
Trigger Event:
push
-
Statement type: