Registry / http-networking / asyncgui

asyncgui

JSON →
library0.11.1pypypi✓ verified 85d ago

A minimalistic async library focusing on fast responsiveness. Current version 0.10.1, requires Python >=3.10, <4.0. Released regularly with API-breaking changes in minor versions.

pip install asyncgui
INSTALL
IMPORT
SIG · ASYNCGUI
A
asyncgui
http-networkingpythonv0.11.1
Install
1.6s avg
Import
37ms
Disk
16MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.11.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.040s · 18.3MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 1.6s · import 0.034s · 19MB
16MB installed
● package 16MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Task
from asyncgui import Task
from asyncgui.task import Task
Task is exported from top-level package.
Event
from asyncgui import Event
from asyncgui.event import Event
Event is exported from asyncgui directly.
ExclusiveEvent
from asyncgui import ExclusiveEvent
from asyncgui.exclusive_event import ExclusiveEvent
ExclusiveEvent is top-level.
StatefulEvent
from asyncgui import StatefulEvent
wait_all
from asyncgui import wait_all
wait_any
from asyncgui import wait_any
run
from asyncgui import run
from asyncgui.runner import run
run is top-level since 0.10.0.

Minimal example showing task creation, event firing, and running with asyncgui's run().

import asyncio from asyncgui import run, Task, Event, wait_all async def worker(event): print("Worker started, waiting for event...") await event.wait() print("Worker got event") async def main(): event = Event() task = Task(worker(event)) task.start() await asyncio.sleep(0.1) print("Firing event") event.fire() await task.join() print("Done") run(main())
Debug
Known issues
breakingIn v0.10.0, `run_as_main` was removed. Use `run()` instead.
fix
Replace `run_as_main` with `run`.
affects: >=0.10.0
breakingIn v0.9.0, `open_cancel_scope()` and `disable_cancellation()` were removed. Use new cancellation API or context managers.
fix
Migrate to the simplified cancel system; see docs.
affects: >=0.9.0
breakingIn v0.7.0, the `Event` class was completely reworked. Old `Event` behavior is now `Box` (deprecated). `AsyncEvent` renamed to `ExclusiveEvent`, `AsyncBox` to `ExclusiveBox`.
fix
Replace old `Event` usage with `Box` or `StatefulEvent`. Use `ExclusiveEvent` instead of `AsyncEvent`.
affects: >=0.7.0
gotcha`Task` objects must be started with `.start()` or used as async context manager before they execute. Simply creating a Task does not start it.
fix
Always call `task.start()` or use `async with Task(coro):`.
affects: all
deprecated`Box` and `ExclusiveBox` are deprecated since v0.7.2. Use `StatefulEvent` and `ExclusiveEvent` instead.
fix
Replace `Box` with `StatefulEvent`, `ExclusiveBox` with `ExclusiveEvent`.
affects: >=0.7.2
Errors
Common errors & fixes
AttributeError: module 'asyncgui' has no attribute 'run_as_main'
`run_as_main` was removed in v0.10.0.
fix
Use `asyncgui.run()` instead.
TypeError: Task.__init__() got an unexpected keyword argument 'cancel_scope'
Cancellation API changed in v0.9.0; `open_cancel_scope` removed.
fix
Use the new cancellation pattern as shown in docs.
AttributeError: 'Event' object has no attribute 'wait'
In v0.7.0, `Event` was reworked. Old code using `.wait()` on Event now fails; you may need `StatefulEvent` or `ExclusiveEvent`.
fix
If you need stateful event, use `StatefulEvent`. Use `ExclusiveEvent` for one-shot.
Upgrade
Version history
0.11.1latest on PyPI · released Apr 30, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
18 hits · last 30 days
node
14
Amazon
1
OpenAI (training)
1
Resources
asyncgui — pip install asyncgui · libregistry