Skip to main content

Rust PyPI Python License

evoid-transport

Low-latency UDP transport — Intent Handler system

Quick StartIntent HandlerChannelsAPI


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)

Table of built distributions (wheels) for evoid-transport 0.2.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file

0.1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page