rename: pydoh -> savdoh
This commit is contained in:
parent
7348f9b0dd
commit
ad45cc3e28
15 changed files with 21 additions and 20 deletions
1
.github/workflows/publish.yml
vendored
1
.github/workflows/publish.yml
vendored
|
|
@ -10,6 +10,7 @@ permissions:
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
environment: pypi
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
|
|
|
||||||
20
README.md
20
README.md
|
|
@ -1,34 +1,34 @@
|
||||||
# pydoh
|
# savdoh
|
||||||
|
|
||||||
DNS-over-HTTPS резолвер для питона. ноль зависимостей — весь HTTPS через стандартный `http.client`+`ssl`. провайдер/DPI видит только твой HTTPS к cloudflare, а не голые DNS-запросы.
|
DNS-over-HTTPS резолвер для питона. ноль зависимостей — весь HTTPS через стандартный `http.client`+`ssl`. провайдер/DPI видит только твой HTTPS к cloudflare, а не голые DNS-запросы.
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
sequenceDiagram
|
sequenceDiagram
|
||||||
App->>pydoh: resolve("example.com")
|
App->>savdoh: resolve("example.com")
|
||||||
pydoh->>Cloudflare: DNS-запрос внутри HTTPS POST
|
savdoh->>Cloudflare: DNS-запрос внутри HTTPS POST
|
||||||
Cloudflare-->>pydoh: ответ внутри HTTPS
|
Cloudflare-->>savdoh: ответ внутри HTTPS
|
||||||
pydoh-->>App: ["93.184.216.34"]
|
savdoh-->>App: ["93.184.216.34"]
|
||||||
```
|
```
|
||||||
|
|
||||||
## установка
|
## установка
|
||||||
|
|
||||||
```
|
```
|
||||||
pip install pydoh
|
pip install savdoh
|
||||||
```
|
```
|
||||||
|
|
||||||
## юзать
|
## юзать
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import pydoh
|
import savdoh
|
||||||
|
|
||||||
ips = pydoh.resolve("example.com")
|
ips = savdoh.resolve("example.com")
|
||||||
```
|
```
|
||||||
|
|
||||||
или подменить резолвинг вообще везде в питоне одной строкой — `requests`, `aiohttp`, что угодно на сокетах будет резолвить через DoH:
|
или подменить резолвинг вообще везде в питоне одной строкой — `requests`, `aiohttp`, что угодно на сокетах будет резолвить через DoH:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import pydoh
|
import savdoh
|
||||||
pydoh.patch_socket()
|
savdoh.patch_socket()
|
||||||
```
|
```
|
||||||
|
|
||||||
## фичи
|
## фичи
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ requires = ["hatchling"]
|
||||||
build-backend = "hatchling.build"
|
build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "pydoh"
|
name = "savdoh"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "zero-dependency DNS over HTTPS resolver for Python, with an optional socket.getaddrinfo patch"
|
description = "zero-dependency DNS over HTTPS resolver for Python, with an optional socket.getaddrinfo patch"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
@ -23,11 +23,11 @@ classifiers = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
Homepage = "https://github.com/ImSavsis/pydoh"
|
Homepage = "https://github.com/ImSavsis/savdoh"
|
||||||
Issues = "https://github.com/ImSavsis/pydoh/issues"
|
Issues = "https://github.com/ImSavsis/savdoh/issues"
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
dev = ["pytest", "build", "twine"]
|
dev = ["pytest", "build", "twine"]
|
||||||
|
|
||||||
[tool.hatch.build.targets.wheel]
|
[tool.hatch.build.targets.wheel]
|
||||||
packages = ["src/pydoh"]
|
packages = ["src/savdoh"]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from pydoh.cache import TTLCache
|
from savdoh.cache import TTLCache
|
||||||
|
|
||||||
|
|
||||||
def test_cache_hit():
|
def test_cache_hit():
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from pydoh import resolve
|
from savdoh import resolve
|
||||||
|
|
||||||
|
|
||||||
def test_live_resolve_example_com():
|
def test_live_resolve_example_com():
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
from pydoh.patch import patch_socket, unpatch_socket
|
from savdoh.patch import patch_socket, unpatch_socket
|
||||||
|
|
||||||
|
|
||||||
def test_patch_and_unpatch_restores_original():
|
def test_patch_and_unpatch_restores_original():
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
import pydoh.resolver as resolver_module
|
import savdoh.resolver as resolver_module
|
||||||
from pydoh.resolver import ResolveError, resolve
|
from savdoh.resolver import ResolveError, resolve
|
||||||
|
|
||||||
|
|
||||||
def _make_response(query_id, ip):
|
def _make_response(query_id, ip):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
from pydoh.wire import build_query, parse_response
|
from savdoh.wire import build_query, parse_response
|
||||||
|
|
||||||
|
|
||||||
def test_build_query_shape():
|
def test_build_query_shape():
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue