evoid-transport
Low-latency UDP transport — Intent Handler system
Quick Start • Intent Handler • Channels • API
Quick Start
uv add evoid-transport
Method 1: Intent Handler (Recommended)
from evoid_transport import register_handlers
# Register UDP transport as Intent handlers
register_handlers(host="0.0.0.0", port=9000)
Method 2: Direct API
from evoid_transport import EvoidUDPPort
transport = EvoidUDPPort(host="0.0.0.0", port=9000)
await transport.start(game_id="my_game")
Intent Handler
evoid-transport registers UDP packet handling as Intent handlers.
Performance
WebSocket (TCP): ~2-5ms overhead
evoid-transport: ~0.5-1ms overhead
ENet: ~0.3-0.5ms overhead
Channels
| Channel | Use Case | Reliability | Ordering |
|---|---|---|---|
| 0 | Card plays, game actions | Reliable | Ordered |
| 1 | Position, animations | Unreliable | Unordered |
| 2 | Chat messages | Reliable | Unordered |
Configuration
TOML
[engines]
transport = "transport"
[engines.options.transport]
host = "0.0.0.0"
port = 9000
API
register_handlers(host, port)
Register UDP transport as Intent handlers.
EvoidUDPPort Methods
| Method | Signature | Description |
|---|---|---|
start |
async start(game_id) |
Start UDP server |
stop |
async stop() |
Stop UDP server |
broadcast_state_sync |
async broadcast_state_sync(state, tick) |
Broadcast game state |
send_intent_to_client |
async send_intent_to_client(addr, name, data) |
Send to specific client |
How It Works
UDP transport maps IOP levels to channels:
- Channel 0 (Reliable) — card plays, purchases (CRITICAL/STANDARD)
- Channel 1 (Unreliable) — position updates, animations (EPHEMERAL)
- Channel 2 (Chat) — chat messages (STANDARD)
The transport doesn't know your game logic. Your Intent's level determines the channel.
Dependencies
evoid>=0.4.0- Optional:
evoid-godot>=1.0.0(for Godot integration)
Build Requirements
This plugin has a Rust core (PyO3 + maturin). Pre-built wheels are available on PyPI for Linux/macOS/Windows. If building from source:
- Rust toolchain (
rustup) - Python development headers (
python3-dev) maturin(pip install maturin)
Links
License
MIT
Release files for evoid-transport 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| evoid_transport-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / evoid_transport-0.2.0-py3-none-any.whl
| Download URL | evoid_transport-0.2.0-py3-none-any.whl |
|---|---|
| Size | 503.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc5ea765b9f86229e770811b464bf8bd1d4a2be0fa8635ac6ea11b59b296cd34
|
|
BLAKE2b-256 checksum How to use checksums |
c6581c3c952ff4598bd6370def00a87c1a485f23c97e3751834d64240da651da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|