Compatibility¶
Clients & Servers¶
PyTAK is used in mission critical environments, every day, across all official TAK Products:
PyTAK has also been tested with:
- taky
- Free TAK Server (FTS/FreeTAKServer)
- RaptorX
- COPERS
Network Protocols¶
| URL scheme | Transport |
|---|---|
tcp://host:port |
TCP unicast (plain text) |
tcp+wo://host:port |
TCP write-only (drain RX, do not enqueue) |
tcp+ro://host:port |
TCP read-only |
tls://host:port |
TLS unicast (encrypted, mTLS) |
tls+wo://host:port |
TLS write-only (drain RX, do not enqueue) |
tls+ro://host:port |
TLS read-only |
udp://group:port |
UDP multicast (Mesh SA) |
udp://host:port |
UDP unicast |
udp+broadcast://network:port |
UDP broadcast |
udp+wo://host:port |
UDP write-only (no port bind) |
udp+ro://host:port |
UDP read-only (no send socket) |
log://stdout / log://stderr |
Console output (debug) |
marti://host:port |
TAK Server Marti REST API (TLS) |
marti+http://host:port |
TAK Server Marti REST API (HTTP) |
tak://... |
TAK enrollment deep-link |
TAK Protocol Payload¶
PyTAK natively sends and receives TAK Protocol Payload - Version 0 (plain UTF-8 XML CoT). This is the default and works with all TAK clients.
To enable TAK Protocol Payload - Version 1 (Protobuf), install the optional takproto module and set TAK_PROTO=1:
Protobuf and iTAK
TAK Protocol v1 (Protobuf) may not work reliably with all versions of iTAK. Use TAK_PROTO=0 (XML) unless you have confirmed Protobuf support on all clients.
Python Version¶
PyTAK requires Python 3.7 or later. It runs on Linux, Windows, macOS, Raspberry Pi, and Android (via Termux or similar).
FreeTAKServer¶
Free TAK Server (FTS) has built-in anti-DoS rate limiting that restricts how fast clients can send CoT events. This cannot be disabled on the server side.
To work with FTS, enable compatibility mode:
Or use a fixed sleep between events:
See Configuration: FTS_COMPAT for details.