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

Bugfix ensure h11 connections are closed

This ensures the connection is closed unless (and only if) the
connection can be recycled. Under...

98936be8141d3d015304bf73c652a6dbda0b6992 authored almost 6 years ago
Unpin pep8-naming

The attribute error has been fixed.

063372cb58ba104ad4faeed09cdc646deb94d9d9 authored almost 6 years ago
Bugfix mark the task started after the server starts

This is after the lifespan startup and just before the listeners are
served i.e. when the server...

fe5448097f76660e2208c928ad1db986c6365f4f authored almost 6 years ago
Update the README to indicate WebSocket support

HTTP/2 WebSockets are now supported :).

2e71983a982079271cf55ad4870f3d21463cbb4c authored almost 6 years ago
Bump and release 0.5.0

70d466cd0f6af77d867a2d0597fdff226b79ef68 authored almost 6 years ago
Bugfix reload on Windows machines

This will reload Hypercorn on Windows (although it should only be used
in the development mode)....

99fd66a5937f6d8a446419f33bb0dcc94f47a510 authored almost 6 years ago
Bugfix cope with file not found errors when reloading

On Windows (and possibly other systems) the module path may not exist
thereby crashing the reloa...

d8e02bccf6defd2db65717263a5d5216efaccdee authored almost 6 years ago
Bugfix Introduce a lock on sending for trio websocket

This prevents multiple tasks writing at the same time and hence
causing a trio.BusyResourceError.

4982f29c11038a0869ac1f0fc35b8201ce2eb93a authored almost 6 years ago
Fix a mypy bug

d42f454b4cf461f53b4339f8673dd752fedd4582 authored almost 6 years ago
Initial working h2 Websocket support RFC 8441

This introduces support of websockets over HTTP/2, as defined in RFC
8441. It requires the lates...

3e19e831a24a18b1ef5481b5a5df3ac561b3175d authored almost 6 years ago
Bugfix don't crash or log on SSL handshake failures

These are typically due to client side issues so they shouldn't be
logged. Note the error in asy...

acad661e41e0cf1ed6671d7d9041dceb437b016b authored almost 6 years ago
Upgrade wsproto to 0.13.0

This is quite a breaking change to wsproto, but it simplifies the
Hypercorn code a fair amount. ...

5b635eba3914445e242457bba93e41e940aec34b authored almost 6 years ago
Correct import ordering for trio

Trio is a third party library, but wasn't positioned as such.

3ad4bde06a70f33ee95a88c1c9cdc7f8fee13fe5 authored about 6 years ago
Bugfix ensure there is no race condition in lifespan startup

Previously it was possible to reach the `wait_for` in the
`wait_for_startup` before the support ...

16b0ae8f898e641a4c3d565f2a2f01ea9cedda61 authored about 6 years ago
Support existing Quart releases

2ca9750773e0045fd22cfea08262e49c45fed2a3 changed from host & port to
using bind and broke existi...

e9aeb30bf4f303d8eacb49ab550c81778378bebb authored about 6 years ago
Allow the access logger Logger to be set

9ab020c9f27bd14c686bdff4cd5435f42ec8a316 introduced an AccessLogger
class with customisation, ho...

6ba0c80aa9a9fe5ce0aa197155e918dd7a314b19 authored about 6 years ago
Change websocket access logging

Since 1e7d248d9013ad81b3278411743ae80d4cbe37b3 the access log for a
websocket connection is only...

c0e35ca82d78ab3c7632c945c32179134a7fec57 authored about 6 years ago
Allow the access logger class to be customised

This also simplifies the code to access log within the various ASGI
protocol handlers. Note that...

9ab020c9f27bd14c686bdff4cd5435f42ec8a316 authored about 6 years ago
Bugfix signal handling

Signal handling with asyncio is an absolute pain. The previous version
would not gracefully shut...

001432f2a85516dd0a0c41f6fcf9f4bbc23d9292 authored about 6 years ago
Bugfix variable referenced before assignment

Issue from 2ca9750773e0045fd22cfea08262e49c45fed2a3

e16bbae8306c2b5f10a7c6098fbce52d02df97c3 authored about 6 years ago
Allow the ALPN protocols to be configured

This allows control over HTTP/2 support, as this is a niche use there
is no command line support.

f51d20e0160dc77dc7a32017dea32797995759f3 authored about 6 years ago
Support requests that assume HTTP/2

A HTTP/2 request starts with ``PRI * HTTP/2.0`` which can
intentionally be parsed by HTTP/1 pars...

69954068536d8dffd1d2fdb1ac4fad253ea0c175 authored about 6 years ago
Ensure that h2c upgrade requests work

Previously the h2c upgrade in the asyncio worker would not be
responded to (the coroutine wasn't...

77dcd42524cff19646efaabad6744a38b1c09c88 authored about 6 years ago
Bugfix default port is now 8000 not 5000

2ca9750773e0045fd22cfea08262e49c45fed2a3 changed the default port to
8000 (when not specified) t...

22ffe3eac26dfffb03a4c47a835cbca2c0494d6d authored about 6 years ago
Add the ability to bind to multiple sockets

This allows (among other uses) a dual stack binding such as

hypercorn --bind '0.0.0.0:5000'...

2ca9750773e0045fd22cfea08262e49c45fed2a3 authored about 6 years ago
Support the trio task_status system

This allows the serve method to be called via a ``nursery.start``, for
example,

async with ...

a047f71e7b86cc83689eb888c7acc9a3569f42e9 authored about 6 years ago
Add an official API for using Hypercorn programmatically

It is not expected that all usage of Hypercorn will be via the command
line, in fact both Quart ...

1ecfcc3ac8a1da1b8b12efdd5cab51fd41ad1c2f authored about 6 years ago
Allow the SSL Verify Flags to be specified in the config

I think this is niche enough not to require a command line argument
for it.

a727c1d5ae1a010e5e5e2ac1f951401cd8e84ef9 authored about 6 years ago
Further Verify Mode support

This follows on from 11a44aceaf6011d912da121496a8924ccb31dffd and adds
a cert_reqs configuration...

20bb8c3a4ec2ee767de72f7ae00f2d11591f5b61 authored about 6 years ago
Add flag to control SSL verify mode.

11a44aceaf6011d912da121496a8924ccb31dffd authored about 6 years ago
Bump and release 0.4.6

bac4668105ab3e8523cada1381feaad6c5cef382 authored about 6 years ago
Bump and release 0.4.5

ab0a8a35be63587b411cd4c816a9f5555a2b51cb authored about 6 years ago
Bugfix Introduce a random delay between worker starts on Windows

There is a strange bug on windows whereby this stack trace is seen,

File "c:\users\administra...

693093fb6bfb446781a55e3a4adb10540a180cd6 authored about 6 years ago
Bugfix EOF handling for websocket connections

Previously neither the trio nor asyncio worker would correctly pass
``None`` to the wsproto conn...

47422dd2d6abf080b6b2c3f6d0fea02b2d11e89d authored about 6 years ago
Improve the test output and fix coverage reporting

The coverage reporting is confusing, Quart requires
``{envsitepackagesdir}`` to report coverage ...

7e32d1da765cc5b3c9c791dc56d26c0af3f402be authored about 6 years ago
Bump and release 0.4.4

b8d271543ad19d36ddd784508503734967b7831d authored about 6 years ago
Revert "Bugfix delete reset h2-streams"

This reverts commit 21892eb5aad44f2662383c644b46dd2b65ce57d2. The
stream information must be kep...

b27ec876cfa1adae7ccc335988fc85adb2927424 authored about 6 years ago
Bugfix ensure ASGI framework errors are logged

The lifespan part of the ASGI specification is new, and hence
Hypercorn will allow for framework...

8498d038bb14614fa6a6c952b2115ead89b14249 authored about 6 years ago
Bugfix flow window updates to connection window

Previously only a stream_id value of None would be considered to
indicate that the window is upd...

764e0fe967f7fe6abb8baf4787a9609c5be7601b authored about 6 years ago
Bugfix delete reset h2-streams

Reset streams were closed, but not deleted. Which would confuse the
server in to believing it wa...

21892eb5aad44f2662383c644b46dd2b65ce57d2 authored about 6 years ago
Bugfix ensure Trio h2 connections timeout when idle

A h2 connection is idle whilst waiting for data from a client with no
active streams, in this ca...

130311ead8c0804bb93e6eca907b7d3228647f3b authored about 6 years ago
Bugfix ensure on timeout the connection is closed

This ensures that a GOAWAY frame is sent to the client, thereby
gracefully closing the connection.

f460e1e8db5e75518c1ac0c73013c4a660dc4d6b authored about 6 years ago
PEP 561 compliance

This should allow the typing included with Hypercorn to be picked up
by mypy and used in project...

98f2f0e887b16b95e0166362b180857d67b29b81 authored about 6 years ago
Bump and release 0.4.3

3a188a4a988f65ad534d49d08d8adf5c2b7f370e authored about 6 years ago
Bugfix task cancellation warnings

This prevents an annoying ``_GatheringFuture exception was never
retrieved`` message and clarifi...

4a55bb043ee79bd85aa7ff699b18dfd66632fb1a authored about 6 years ago
Update the gitlab-ci file

This includes running the format tox environment and specifying the
image throughout to be the l...

67a33302dae03224c03a24485b65640fcdebac37 authored about 6 years ago
Bugfix ensure task cancellation works on Python 3.6

This function should cancel all bar the protected task, including any
tasks created by the ASGI ...

80147629343a2b7467a69be6c460ea8d204fb3e2 authored about 6 years ago
Bump and release 0.4.2

a8aa68b4e1c9e3eb8e2b9c8447addad951fc47b8 authored about 6 years ago
Bugfix allow SSL setting to be configured in a file

This prevents the CLI arguments overwriting those loaded from a file,
and includes a test to ens...

5309cc2110e87bb9f291cf2fc3125b358ececb44 authored about 6 years ago
Pin the cryptography version for autobahn tests

The later versions have dropped support for the OpenSSL version used
in the Python2.7 alpine ima...

32f7066f1720e9217827318b606c88944546d79b authored about 6 years ago
Bump and release 0.4.1

07ecd7f752b99db381e83de96e99d13005f691a5 authored about 6 years ago
Add a minor README reference to the worker classes

This should help establish that Hypercorn is not just for asyncio ASGI
applications.

9bb61e236b8d4d34ec31702314066ba7ae70596b authored about 6 years ago
Bugfix downgrade logging to warning for no lifespan support

The previous error message looks to much like Hypercorn has crashed
and cannot continue. This ma...

da0927b1be67f301e1195decc54936d75947d2e7 authored about 6 years ago
Bugfix lifespan not supported error

This fixes a bug introduced in e824b32a whereby for ASGI applications
that don't support the lif...

0eae5971e3c76bafe199dfe2deb0dfe5052fc78f authored about 6 years ago
Bugfix uvloop argument usage

This fixes a bug introduced in a8d80691 whereby the uvloop argument
was not set properly and hen...

e2d3ff851ccc017caa3f1be6c17da669d3f93b80 authored about 6 years ago
Change test fixture name from request

request will be a reserved fixture name in an upcoming pytest version,
and making this change no...

ac2bbb4847716b9c5f4977a411ee1a9938d950ac authored about 6 years ago
Bump and release 0.4.0

c9821b6e6e7a2f2bedbefc87164525bda84acf52 authored about 6 years ago
Bugfix restore _raise_shutdown signal handler

This means the workers gracefully shutdown on Windows correctly, as
well as Linux. I'm not sure ...

afc0ad4f596f9e4712ff1f8aaf46bc8a9aa24f3e authored about 6 years ago
Bugfix trio worker socket listening

A socket listen call can only be made once on Windows.

98c060fde4fb616834122b60b5efbe0eac1a6e25 authored about 6 years ago
Suport multiple workers with the trio worker class

This completes the trio worker class functionality set such that it
matches what can be done wit...

21f5c3b0cc3dd8577c5df89fe4303a637fe73a8e authored about 6 years ago
Introduce a backlog configuration option

This allows the maximum number of pending connections, in a backlog,
to be configured. It follow...

c2644be73c580eba0038a90c0efdac092be245a2 authored about 6 years ago
Support unix sockets for the trio worker

This makes use of the socket creation code introduced in
d2ea63b1d6f8a97ac9167fa73beba2d1518f33d...

ee818c18e41f06c254745effb7459b578cac4254 authored about 6 years ago
Bugfix don't report asyncio task cancellation as ASGI framework errors

Trio seems to have made a better decision here in that the trio
CancelledError inherits from Bas...

847ee1be10954dc95e87459c99a4d3f21b073d18 authored about 6 years ago
Bugfix multi worker shutdown

This fixes a bug introduced in
0791fc21f10e44c4a17f6a1a8694ca717ea496c4. The issue is that excep...

3add654fada947a2f265a6d276fc94d23e9fa209 authored about 6 years ago
Refactor socket creation code

This fixes a bug with existing unix domain sockets (note the os.remove
line). It also ensures th...

d2ea63b1d6f8a97ac9167fa73beba2d1518f33d7 authored about 6 years ago
Allow further h2 initial settings to be configured

This allows the max concurrent streams and max header list size
settings to be configured via th...

9c05d136c40191c1c3825498af36907c81261a38 authored about 6 years ago
Ensure sending doesn't error when the connection is closed

This is defined in the ASGI specification as a noop, rather than a
raised exception.

fd16b849a4e5c1754a65cc6d6ba155723308d236 authored about 6 years ago
Minor refactor to clarify logic

5c4d2e1b04656b0d951055e9622cf8eae5446633 authored about 6 years ago
Normalise PID file writing support

This adds support to the trio worker and refactors the asyncio worker
code for clarity. This rem...

eda80d77a70dcb2dd8d3aa2ac167b28605900db1 authored about 6 years ago
Enable tox format environment checks

This was missed in bece8051b14b3001a00d915114b2b58d07076205.

4c8d68b09369bbc98149e27642d48d50fe2a7f9e authored about 6 years ago
Support reloading on changes in the trio worker

This has required some refactoring of the asyncio code to use shared
code across both workers. I...

10f97379914515df2e014d3af16a2fc8ce912283 authored about 6 years ago
Bugfix restore the single worker behaviour

This once again allows the reload option to work by bypassing any
multiprocessing for a single w...

19e6f61aee247909c265cc4c8063d4eccc8fe5c9 authored about 6 years ago
Bugfix h2, don't try to send negative or zero bytes

This avoids a FlowControlError in the case whereby a client has
specified a 0 or negative window...

ac8ef24d3a7fcde6db46630394e2d69b56da1693 authored about 6 years ago
Bugfix h2 don't send nothing

This shortcuts the sending when the data to send is just b"".

08aae32f5b9da0ca4f10131dce4e55b1bab4c2a5 authored about 6 years ago
Bump h2spec version to the latest

This includes some minor bugfixes. (It doesn't solve the trio timeout
issue though).

7ac88c7644355cb150dc3da0805729b5929dbcda authored about 6 years ago
Adopt black and isort to autoformat the files

This removes any need to figure out how to style the code for
Hypercorn, instead allowing these ...

bece8051b14b3001a00d915114b2b58d07076205 authored about 6 years ago
Alter multi worker shutdown

This switches the shutdown prompt from a signal to based on a
multiprocessing event being set (w...

0791fc21f10e44c4a17f6a1a8694ca717ea496c4 authored about 6 years ago
Shutdown all tasks on closure for asyncio workers

Trio workers already have this functionality via the nursery usage.

This helps ensure the serve...

21845455a2267f703915f4d26cf6dc3bc024be33 authored about 6 years ago
Bugfix support the lifespan protocol in the compliance servers

This allows the compliance tests to proceed, and ideally pass...

ad6aee11868fa447844cb695ef5ba3a0181419ca authored about 6 years ago
Support the ASGI lifespan protocol

This allows ASGI frameworks to startup and shutdown within the event
loop context. It also start...

e824b32acb5d2db3513e1d0dfff3d7fa5c2bb316 authored about 6 years ago
Bugix don't create an SSL context within the Config instance

The Config instance is shared among the worker processes by being
pickled, however SSL contexts ...

ffdc2f07ee4610d34a723c3dd0f040b176e1ad9b authored about 6 years ago
Fix issues as raised by latest flake8 version

E252 is ignored as I prefer no spaces in the definition. W503 and W504
as they work incorrectly ...

185985476919d212507593d889206bbb40a7be97 authored about 6 years ago
Enable h2spec testing for the trio worker

This should ensure that the trio HTTP/2 implementation is, and remains
compliant with the specif...

9044a13928bd8100957e0b5abe2dfab6fba184ee authored over 6 years ago
Swtich from callback usage to a coroutine wrapper in h2

This makes the h2 code more consistent and clear across the asyncio
and trio versions. In additi...

e72cdbc09ec95a376d6fa2ccbb6e6f0993f0df7d authored over 6 years ago
Rename common to asgi

This should help clarify the conceptual separation of the code into
the I/O parts based on the w...

2c558f25ef9cad30f717cb9bbff89db010dfc328 authored over 6 years ago
Upgrade to trio >= 0.9.0 and switch to channels from Queues

Trio 0.9.0 deprecates Queues in favour of channels, this commit
follows suit for Hypercorn. This...

423615c58b84fcc05683a628cb84e921b765e2ea authored over 6 years ago
Fix a race condition recording client/server address

The socket can close between opening and the call to get the
client/server address in the ASGI s...

6e9944f5469d84a2274f330c03e97b2bcef8d406 authored over 6 years ago
Refactor the h2 serving code

This is primarily to correct the logic regarding when to close the
connection and whether to sen...

bfd65454bcb09fdb2e360345e2a3003ad8d3cf62 authored over 6 years ago
Refactor the wsproto serving code

This is primarily to correct the logic regarding when to close the
connection and whether to sen...

1e7d248d9013ad81b3278411743ae80d4cbe37b3 authored over 6 years ago
Enable the autobahn test for the trio worker

This should ensure that the trio websocket implementation is, and
remains compliant with the spe...

e05734af2333533904ba48dd4699b265f026d236 authored over 6 years ago
Refactor the h11 serving code

This is primarily to correct the logic regarding when to close the
connection and whether to sen...

73efdb6269dbefba5239d5ec3550c700c296a5b5 authored over 6 years ago
Remove file added by mistake in 00e38d3f3e188e0d47b591772e64ade673147400

3d5aa93b2bd14708c412172aabe3362dde1dba19 authored over 6 years ago
Add a missing __init__ file and fix mypy issues

With this file mypy knows to also check the files in the trio
directory which in turn highlights...

fff131b0bd419de8955bea8f1f35c5ae1a8f3bdd authored over 6 years ago
Refactor h2 code to support trio-h2

This most completes the trio worker as it now supports HTTP/1.1,
HTTP/2 and Websockets but doesn...

3c175537bdf7e7a7690d8415805e9f5af7acca96 authored over 6 years ago
Handle application failures with wsproto

This ensures that Hypercorn sends a 403 response if the application
errors in anyway before the ...

a960b155ca41324cec52c0151809a6b458ed65a0 authored over 6 years ago
Add websocket support to the trio worker

This further advances the trio worker by supporting websocket
connections including rejection HT...

285186befb369bcf82fc88eb23f139749b0572cd authored over 6 years ago
Add a typing Protocol for a Queue

This allows the Queue to be typed and specified in the H11Mixin, which
was previously not possib...

dbfb0ebc1e24e56fe186eeef6d186588274662cd authored over 6 years ago
Bugfix ensure the scheme is present for asyncio h11 connections

This fixes a bug introduced in
00e38d3f3e188e0d47b591772e64ade673147400.

097c4aa0260551f68185127a99ca2602b4ca3a5a authored over 6 years ago
Handle application failures with a 500 response for h11

This ensures that Hypercorn sends a 500 response if the application
errors in anyway whereby it ...

544584e7e9726fb915a07bc01f474eb1207933e3 authored over 6 years ago
Add initial trio worker

This only supports HTTP/1 and is not complete (no upgrade support),
however it is a good checkpo...

00e38d3f3e188e0d47b591772e64ade673147400 authored over 6 years ago