without-http 0.0.1__tar.gz → 0.0.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: without-http
3
- Version: 0.0.1
3
+ Version: 0.0.2
4
4
  Summary: A sans-IO-backed ASGI server and HTTP client for without: h11/h2/wsproto over asyncio sockets.
5
5
  Author: Josh Karpel
6
6
  Author-email: Josh Karpel <josh.karpel@gmail.com>
@@ -16,8 +16,8 @@ Classifier: Topic :: Internet :: WWW/HTTP
16
16
  Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
17
17
  Classifier: Topic :: Software Development :: Libraries
18
18
  Classifier: Typing :: Typed
19
- Requires-Dist: without-core==0.0.1
20
- Requires-Dist: without-asgi==0.0.1
19
+ Requires-Dist: without-core==0.0.2
20
+ Requires-Dist: without-asgi==0.0.2
21
21
  Requires-Dist: h11>=0.16
22
22
  Requires-Dist: h2>=4.1
23
23
  Requires-Dist: wsproto>=1.2
@@ -61,10 +61,11 @@ interchangeably with uvicorn. The server handles TLS, HTTP/2 (by ALPN or prior
61
61
  knowledge), keep-alive, WebSockets over the HTTP/1.1 upgrade, per-handler
62
62
  isolation, and flow control. The client is a `ConnectionPool` with a `(head,
63
63
  body)` response split, buffered and streaming bodies in both directions,
64
- opt-in trailers, HTTP/2 multiplexing, and `stack`-composed middleware.
64
+ opt-in trailers, HTTP/2 multiplexing, per-host connection bounds, per-phase
65
+ request timeouts, consumer-driven duplex (with bidirectional streaming over
66
+ HTTP/2), and `stack`-composed middleware.
65
67
 
66
68
  See the
67
- [`without-http` guide](https://without.help/guides/without-http/)
69
+ [`without-http` guide](https://without.help/without-http/)
68
70
  (with the [API reference](https://without.help/reference/without_http/))
69
- for the full surface, including the deferred work (WebSockets over HTTP/2, HTTP/3,
70
- duplex).
71
+ for the full surface, including the deferred work (WebSockets over HTTP/2, HTTP/3).
@@ -35,10 +35,11 @@ interchangeably with uvicorn. The server handles TLS, HTTP/2 (by ALPN or prior
35
35
  knowledge), keep-alive, WebSockets over the HTTP/1.1 upgrade, per-handler
36
36
  isolation, and flow control. The client is a `ConnectionPool` with a `(head,
37
37
  body)` response split, buffered and streaming bodies in both directions,
38
- opt-in trailers, HTTP/2 multiplexing, and `stack`-composed middleware.
38
+ opt-in trailers, HTTP/2 multiplexing, per-host connection bounds, per-phase
39
+ request timeouts, consumer-driven duplex (with bidirectional streaming over
40
+ HTTP/2), and `stack`-composed middleware.
39
41
 
40
42
  See the
41
- [`without-http` guide](https://without.help/guides/without-http/)
43
+ [`without-http` guide](https://without.help/without-http/)
42
44
  (with the [API reference](https://without.help/reference/without_http/))
43
- for the full surface, including the deferred work (WebSockets over HTTP/2, HTTP/3,
44
- duplex).
45
+ for the full surface, including the deferred work (WebSockets over HTTP/2, HTTP/3).
@@ -0,0 +1,41 @@
1
+ [build-system]
2
+ requires = ["uv_build>=0.11.32,<0.12"]
3
+ build-backend = "uv_build"
4
+
5
+ [project]
6
+ name = "without-http"
7
+ version = "0.0.2"
8
+ description = "A sans-IO-backed ASGI server and HTTP client for without: h11/h2/wsproto over asyncio sockets."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.14"
12
+ classifiers = [
13
+ "Development Status :: 2 - Pre-Alpha",
14
+ "Framework :: AsyncIO",
15
+ "Intended Audience :: Developers",
16
+ "Operating System :: OS Independent",
17
+ "Programming Language :: Python :: 3",
18
+ "Programming Language :: Python :: 3 :: Only",
19
+ "Programming Language :: Python :: 3.14",
20
+ "Topic :: Internet :: WWW/HTTP",
21
+ "Topic :: Internet :: WWW/HTTP :: HTTP Servers",
22
+ "Topic :: Software Development :: Libraries",
23
+ "Typing :: Typed",
24
+ ]
25
+ dependencies = [
26
+ "without-core==0.0.2",
27
+ "without-asgi==0.0.2",
28
+ "h11>=0.16",
29
+ "h2>=4.1",
30
+ "wsproto>=1.2",
31
+ ]
32
+
33
+ [[project.authors]]
34
+ name = "Josh Karpel"
35
+ email = "josh.karpel@gmail.com"
36
+
37
+ [tool.uv.sources.without-core]
38
+ workspace = true
39
+
40
+ [tool.uv.sources.without-asgi]
41
+ workspace = true
@@ -1,10 +1,10 @@
1
1
  [build-system]
2
- requires = ["uv_build>=0.11.25,<0.12"]
2
+ requires = ["uv_build>=0.11.32,<0.12"]
3
3
  build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "without-http"
7
- version = "0.0.1"
7
+ version = "0.0.2"
8
8
  description = "A sans-IO-backed ASGI server and HTTP client for without: h11/h2/wsproto over asyncio sockets."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -26,8 +26,8 @@ classifiers = [
26
26
  "Typing :: Typed",
27
27
  ]
28
28
  dependencies = [
29
- "without-core==0.0.1",
30
- "without-asgi==0.0.1",
29
+ "without-core==0.0.2",
30
+ "without-asgi==0.0.2",
31
31
  "h11>=0.16",
32
32
  "h2>=4.1",
33
33
  "wsproto>=1.2",
@@ -24,6 +24,16 @@ from without_http.lifespan import LifespanError
24
24
  from without_http.lifespan import run_lifespan
25
25
  from without_http.server import Server
26
26
  from without_http.server import serving
27
+ from without_http.socket_options import SocketOptions
28
+ from without_http.socket_options import receive_buffer_size
29
+ from without_http.socket_options import send_buffer_size
30
+ from without_http.socket_options import tcp_keepalive
31
+ from without_http.timeouts import ConnectTimeout
32
+ from without_http.timeouts import HTTPTimeout
33
+ from without_http.timeouts import PoolTimeout
34
+ from without_http.timeouts import ReadTimeout
35
+ from without_http.timeouts import Timeout
36
+ from without_http.timeouts import WriteTimeout
27
37
  from without_http.tls import ALPN_PROTOCOLS
28
38
  from without_http.tls import server_ssl_context
29
39
  from without_http.ws_wire import is_websocket_upgrade
@@ -36,13 +46,20 @@ __all__ = [
36
46
  "ClientMiddleware",
37
47
  "ClientRequest",
38
48
  "ClientResponse",
49
+ "ConnectTimeout",
39
50
  "ConnectionPool",
40
51
  "CookieJar",
52
+ "HTTPTimeout",
41
53
  "LifespanError",
54
+ "PoolTimeout",
55
+ "ReadTimeout",
42
56
  "ResponseBody",
43
57
  "ResponseHead",
44
58
  "ResponseTrailers",
45
59
  "Server",
60
+ "SocketOptions",
61
+ "Timeout",
62
+ "WriteTimeout",
46
63
  "add_headers",
47
64
  "cookies",
48
65
  "early_hint_headers",
@@ -50,15 +67,18 @@ __all__ = [
50
67
  "h11_events_from_outbound",
51
68
  "inbound_from_event",
52
69
  "is_websocket_upgrade",
70
+ "receive_buffer_size",
53
71
  "request_headers",
54
72
  "response_headers",
55
73
  "response_status_and_headers",
56
74
  "run_lifespan",
57
75
  "scope_from_h2_headers",
58
76
  "scope_from_request",
77
+ "send_buffer_size",
59
78
  "server_ssl_context",
60
79
  "serving",
61
80
  "stack",
81
+ "tcp_keepalive",
62
82
  "websocket_scope_from_request",
63
83
  "wrap",
64
84
  "ws_events_from_outbound",