NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #744 most downloaded on PyPI
Engine.IO server and client for Python
Last release 1 months ago
30 Aug 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
148 releases · first in 2015
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Tornado 6 support ( commit ) (thanks Michel Llorens !)
added note on CORS support for sanic ( commit )
added python 3.7 build ( commit )
auto-generate change log during release ( commit )
added change log ( commit )
helper release script ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
One column per quarter.
migrate to ASGI3 #108 ( commit ) (thanks Florimond Manca !)
updated asgi examples to latest uvicorn ( commit )
remove security alert in requirements ( commit )
removed unused arguments and methods ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Downgrade log levels in some areas #103 ( commit ) (thanks Aaron Bach !)
capture timeouts and other exceptions from requests ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
not necessary to hold the packet queue when upgrading ( commit )
add link to stack overflow for questions ( commit )
pep8 fixes for previous commit ( commit )
Use the correct text type for upgrade probes in both Python 2 and 3 #101 #265 . ( commit ) (thanks Sam Brightman !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Pass cookies to websocket connection creation ( commit ) (thanks Adrien Gavignet !)
close the aiohttp client to prevent exit warnings ( commit )
readme fixes ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
exit service task if event loop is closed ( commit )
more tornado fixes ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
reset sid after a disconnect ( commit )
uniform service task cancellation ( commit )
Fix hang on KeyboardInterrupt when running with asyncio. #95 ( commit ) (thanks Ingmar Steen !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
better error handling during websocket connection handshake ( commit )
more places where connection shouldn't be reset too quickly ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
fixed unreliable unit test ( commit )
Fixes #236 ( commit )
fixed handling of queue empty exceptions #88 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
add a grace period of 5 seconds to ping timeout ( commit )
do not use six in setup.py ( commit )
minor refactor of clients for consistency with servers ( commit )
minor refactor of the async drivers ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
unit test reorganization ( commit )
do not block upgrades with high packet traffic #16 ( commit )
user session documentation ( commit )
remove python 3.4 from builds ( commit )
user sessions ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
bug fixes on handling of timeouts in the client ( commit )
make ping loop task more responsive to cancellation ( commit )
correct handling of disconnect event ( commit )
make unit tests compatible with python 3.5 ( commit )
do not drop extra packets included in first response ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
initial Engine.IO client implementation
client examples ( commit )
pass custom headers in client connection requests ( commit )
restructure async drivers into a subpackage ( commit )
documentation updates ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
ASGI support
support serving static files in wsgi and asgi middlewares ( commit )
refactor wsgi and asgi middlewares ( commit )
minor documentation fixes ( commit )
reorganized documentation ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
address potential lock of the service thread ( commit )
graceful exit for service task ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
updated requirements file ( commit )
more fixes towards cleaning up abruptly disconnected clients ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Actively monitor clients for disconnections ( commit )
parse integer packets as strings #75 ( commit )
missing unit test ( commit )
add Python 3.7 to build ( commit )
removed unused import ( commit )
Tornado docs ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
support OPTIONS request method in aiohttp and sanic #70 ( commit )
More flexible specification of CORS allowed origins Suggested in https://github.com/miguelgrinberg/Flask-SocketIO/issues/697#issuecomment-385203087 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
basic support for cors allowed headers ( commit )
add pypy3 target to travis builds ( commit )
respond to CORS preflight requests #630 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
more aiohttp unit test fixes ( commit )
fix aiohttp unit test ( commit )
support for aiohttp 3.x ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
fix documentation builds ( commit )
Suppress "socket is closed" stack trace from logs #57 ( commit )
Reraise exceptions in a Py2/Py3 compatible way #58 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
remove double-utf8 encoding hack this hack that made some incorrectly encoded packets sent by the JS socket.io 1.x clients does not always work, and is not needed anymore since the 2.x clients have been fixed. ( commit )
Documented protocol defaults ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
cleaner disconnecting of polling clients ( commit )
Support async_handlers option for the asyncio server #95 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
better error handling strategy #49 (again and hopefully better) ( commit )
Reraise app exceptions with the correct traceback #49 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
another fix in the lost connection detection logic ( commit )
detect lost connections (asyncio) ( commit )
detect lost connections (eventlet/gevent) ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
properly handle crashes in connect/disconnect handlers ( commit )
invoke disconnect handler when websocket handler crashes ( commit )
invoke disconnect handler when application handler crashes ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Accept leading and trailing slashes in engineio_path #83 ( commit )
Use custom exceptions for internal errors #44 ( commit )
Fix sanic url parsing #43 According to sanic docs, request.url already contains query string, so adding it results in data corruption. This fix worked for me. #42 ( commit ) (thanks Семён Марьясин !)
fixed aiohttp unit test ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Do not depends on SERVER_SOFTWARE constant from aiohttp #86 ( commit )
proper handling of closed sockets ( commit )
use Python 3.6 for docs build ( commit )
release 1.3.0 ( commit )
Better handling of close packets from the client #41 ( commit )
rename async to _async to avoid conflicts #36 ( commit )
websocket support for sanic ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Use non-blocking reads for uwsgi websocket handles #417 ( commit )
handle unexpected disconnects from uwsgi websocket ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
updated examples readme ( commit )
Fix crash on invalid packet type. Add test #37 ( commit ) (thanks Dmitry Voronin !)
minor updates to sanic examples ( commit )
sanic examples ( commit )
sanic support (long-polling only) ( commit )
updated documentation logo ( commit )
ensure iscoroutinefunction works well for mocks ( commit )
updated requirement files for examples ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
various minor improvements for asyncio support ( commit )
Fixed asyncio example code #35 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
minor documentation updates ( commit )
async socket unit tests ( commit )
more asyncio unit tests ( commit )
catch cancelled tasks due to client leaving ( commit )
some initial async server unit tests ( commit )
asyncio documentation ( commit )
reorganized examples ( commit )
Preliminary asyncio support! Yay! ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Use text/plain content type for base64 encoded responses #33 ( commit )
removed py33 from tests, added py36 ( commit )
additional fix regarding bytearray support ( commit )
Merge branch 'wwqgtxx-patch-1' ( commit )
allow binary packets to be given as bytearrays ( commit ) (thanks wwqgtxx !)
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Use a statically allocated logger by default ( commit )
fix unit test to work on python 2.7 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
workaround double utf-8 encode bug in javascript client #315 ( commit )
upgrade to a more recent engineio.js for the examples ( commit )
do not close a socket that is already closed #312 ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
corrected logic that selects gevent_uwsgi as async mode #28 ( commit )
documentation fixes ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
updated Server class docstring ( commit )
added async_handlers option to server ( commit )
documentation for new gevent_uwsgi async_mode ( commit )
add unit test for complete code coverage ( commit )
Merge branch 'efficiosoft-uwsgi-gevent-support' ( commit )
Added websocket support for uWSGI with gevent ( commit ) (thanks Robert Schindler !)
minor updates to readme file ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
minor comment additions to examples ( commit )
async message events, sleep function, better client timeout Several improvements in this commit: 1. Message event handlers are invoked in a thread so that they are non-blocking. 2. Added a sleep function that is generic across async modes. 3. The timeout to declare a client gone has been extended to match the ping timeout setting. ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Correct generation of binary xhr2 packets ( commit )
Do not write binary packets to the log ( commit )
Hopefully addressed some tests that fail intermittently on travis ( commit )
See CHANGE.LOG for release notes.
See CHANGE.LOG for release notes.
Dispose of disconnected sockets ( commit )
disable imports warning in flake8 ( commit )
Your coding agent can read these notes before it upgrades. Set up the MCP server →