Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/nonebot/nonecorn
ASGI server that forked from hypercorn, with extra features beyond asgi spec
https://github.com/nonebot/nonecorn
This ensures the connection is closed unless (and only if) the
connection can be recycled. Under...
The attribute error has been fixed.
063372cb58ba104ad4faeed09cdc646deb94d9d9 authored almost 6 years ago
This is after the lifespan startup and just before the listeners are
served i.e. when the server...
HTTP/2 WebSockets are now supported :).
2e71983a982079271cf55ad4870f3d21463cbb4c authored almost 6 years ago70d466cd0f6af77d867a2d0597fdff226b79ef68 authored almost 6 years ago
This will reload Hypercorn on Windows (although it should only be used
in the development mode)....
On Windows (and possibly other systems) the module path may not exist
thereby crashing the reloa...
This prevents multiple tasks writing at the same time and hence
causing a trio.BusyResourceError.
d42f454b4cf461f53b4339f8673dd752fedd4582 authored almost 6 years ago
This introduces support of websockets over HTTP/2, as defined in RFC
8441. It requires the lates...
These are typically due to client side issues so they shouldn't be
logged. Note the error in asy...
This is quite a breaking change to wsproto, but it simplifies the
Hypercorn code a fair amount. ...
Trio is a third party library, but wasn't positioned as such.
3ad4bde06a70f33ee95a88c1c9cdc7f8fee13fe5 authored about 6 years ago
Previously it was possible to reach the `wait_for` in the
`wait_for_startup` before the support ...
2ca9750773e0045fd22cfea08262e49c45fed2a3 changed from host & port to
using bind and broke existi...
9ab020c9f27bd14c686bdff4cd5435f42ec8a316 introduced an AccessLogger
class with customisation, ho...
Since 1e7d248d9013ad81b3278411743ae80d4cbe37b3 the access log for a
websocket connection is only...
This also simplifies the code to access log within the various ASGI
protocol handlers. Note that...
Signal handling with asyncio is an absolute pain. The previous version
would not gracefully shut...
Issue from 2ca9750773e0045fd22cfea08262e49c45fed2a3
e16bbae8306c2b5f10a7c6098fbce52d02df97c3 authored about 6 years ago
This allows control over HTTP/2 support, as this is a niche use there
is no command line support.
A HTTP/2 request starts with ``PRI * HTTP/2.0`` which can
intentionally be parsed by HTTP/1 pars...
Previously the h2c upgrade in the asyncio worker would not be
responded to (the coroutine wasn't...
2ca9750773e0045fd22cfea08262e49c45fed2a3 changed the default port to
8000 (when not specified) t...
This allows (among other uses) a dual stack binding such as
hypercorn --bind '0.0.0.0:5000'...
2ca9750773e0045fd22cfea08262e49c45fed2a3 authored about 6 years ago
This allows the serve method to be called via a ``nursery.start``, for
example,
async with ...
a047f71e7b86cc83689eb888c7acc9a3569f42e9 authored about 6 years ago
It is not expected that all usage of Hypercorn will be via the command
line, in fact both Quart ...
I think this is niche enough not to require a command line argument
for it.
This follows on from 11a44aceaf6011d912da121496a8924ccb31dffd and adds
a cert_reqs configuration...
11a44aceaf6011d912da121496a8924ccb31dffd authored about 6 years ago
bac4668105ab3e8523cada1381feaad6c5cef382 authored about 6 years ago
ab0a8a35be63587b411cd4c816a9f5555a2b51cb authored about 6 years ago
There is a strange bug on windows whereby this stack trace is seen,
File "c:\users\administra...
693093fb6bfb446781a55e3a4adb10540a180cd6 authored about 6 years ago
Previously neither the trio nor asyncio worker would correctly pass
``None`` to the wsproto conn...
The coverage reporting is confusing, Quart requires
``{envsitepackagesdir}`` to report coverage ...
b8d271543ad19d36ddd784508503734967b7831d authored about 6 years ago
This reverts commit 21892eb5aad44f2662383c644b46dd2b65ce57d2. The
stream information must be kep...
The lifespan part of the ASGI specification is new, and hence
Hypercorn will allow for framework...
Previously only a stream_id value of None would be considered to
indicate that the window is upd...
Reset streams were closed, but not deleted. Which would confuse the
server in to believing it wa...
A h2 connection is idle whilst waiting for data from a client with no
active streams, in this ca...
This ensures that a GOAWAY frame is sent to the client, thereby
gracefully closing the connection.
This should allow the typing included with Hypercorn to be picked up
by mypy and used in project...
3a188a4a988f65ad534d49d08d8adf5c2b7f370e authored about 6 years ago
This prevents an annoying ``_GatheringFuture exception was never
retrieved`` message and clarifi...
This includes running the format tox environment and specifying the
image throughout to be the l...
This function should cancel all bar the protected task, including any
tasks created by the ASGI ...
a8aa68b4e1c9e3eb8e2b9c8447addad951fc47b8 authored about 6 years ago
This prevents the CLI arguments overwriting those loaded from a file,
and includes a test to ens...
The later versions have dropped support for the OpenSSL version used
in the Python2.7 alpine ima...
07ecd7f752b99db381e83de96e99d13005f691a5 authored about 6 years ago
This should help establish that Hypercorn is not just for asyncio ASGI
applications.
The previous error message looks to much like Hypercorn has crashed
and cannot continue. This ma...
This fixes a bug introduced in e824b32a whereby for ASGI applications
that don't support the lif...
This fixes a bug introduced in a8d80691 whereby the uvloop argument
was not set properly and hen...
request will be a reserved fixture name in an upcoming pytest version,
and making this change no...
c9821b6e6e7a2f2bedbefc87164525bda84acf52 authored about 6 years ago
This means the workers gracefully shutdown on Windows correctly, as
well as Linux. I'm not sure ...
A socket listen call can only be made once on Windows.
98c060fde4fb616834122b60b5efbe0eac1a6e25 authored about 6 years ago
This completes the trio worker class functionality set such that it
matches what can be done wit...
This allows the maximum number of pending connections, in a backlog,
to be configured. It follow...
This makes use of the socket creation code introduced in
d2ea63b1d6f8a97ac9167fa73beba2d1518f33d...
Trio seems to have made a better decision here in that the trio
CancelledError inherits from Bas...
This fixes a bug introduced in
0791fc21f10e44c4a17f6a1a8694ca717ea496c4. The issue is that excep...
This fixes a bug with existing unix domain sockets (note the os.remove
line). It also ensures th...
This allows the max concurrent streams and max header list size
settings to be configured via th...
This is defined in the ASGI specification as a noop, rather than a
raised exception.
5c4d2e1b04656b0d951055e9622cf8eae5446633 authored about 6 years ago
This adds support to the trio worker and refactors the asyncio worker
code for clarity. This rem...
This was missed in bece8051b14b3001a00d915114b2b58d07076205.
4c8d68b09369bbc98149e27642d48d50fe2a7f9e authored about 6 years ago
This has required some refactoring of the asyncio code to use shared
code across both workers. I...
This once again allows the reload option to work by bypassing any
multiprocessing for a single w...
This avoids a FlowControlError in the case whereby a client has
specified a 0 or negative window...
This shortcuts the sending when the data to send is just b"".
08aae32f5b9da0ca4f10131dce4e55b1bab4c2a5 authored about 6 years ago
This includes some minor bugfixes. (It doesn't solve the trio timeout
issue though).
This removes any need to figure out how to style the code for
Hypercorn, instead allowing these ...
This switches the shutdown prompt from a signal to based on a
multiprocessing event being set (w...
Trio workers already have this functionality via the nursery usage.
This helps ensure the serve...
21845455a2267f703915f4d26cf6dc3bc024be33 authored about 6 years agoThis allows the compliance tests to proceed, and ideally pass...
ad6aee11868fa447844cb695ef5ba3a0181419ca authored about 6 years ago
This allows ASGI frameworks to startup and shutdown within the event
loop context. It also start...
The Config instance is shared among the worker processes by being
pickled, however SSL contexts ...
E252 is ignored as I prefer no spaces in the definition. W503 and W504
as they work incorrectly ...
This should ensure that the trio HTTP/2 implementation is, and remains
compliant with the specif...
This makes the h2 code more consistent and clear across the asyncio
and trio versions. In additi...
This should help clarify the conceptual separation of the code into
the I/O parts based on the w...
Trio 0.9.0 deprecates Queues in favour of channels, this commit
follows suit for Hypercorn. This...
The socket can close between opening and the call to get the
client/server address in the ASGI s...
This is primarily to correct the logic regarding when to close the
connection and whether to sen...
This is primarily to correct the logic regarding when to close the
connection and whether to sen...
This should ensure that the trio websocket implementation is, and
remains compliant with the spe...
This is primarily to correct the logic regarding when to close the
connection and whether to sen...
3d5aa93b2bd14708c412172aabe3362dde1dba19 authored over 6 years ago
With this file mypy knows to also check the files in the trio
directory which in turn highlights...
This most completes the trio worker as it now supports HTTP/1.1,
HTTP/2 and Websockets but doesn...
This ensures that Hypercorn sends a 403 response if the application
errors in anyway before the ...
This further advances the trio worker by supporting websocket
connections including rejection HT...
This allows the Queue to be typed and specified in the H11Mixin, which
was previously not possib...
This fixes a bug introduced in
00e38d3f3e188e0d47b591772e64ade673147400.
This ensures that Hypercorn sends a 500 response if the application
errors in anyway whereby it ...
This only supports HTTP/1 and is not complete (no upgrade support),
however it is a good checkpo...