Skip to content

Compatibility

Clients & Servers

PyTAK is used in mission critical environments, every day, across all official TAK Products:

PyTAK has also been tested with:


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:

pip install pytak[with_takproto]
wget https://github.com/snstac/takproto/releases/latest/download/takproto_latest_all.deb
sudo apt install -f ./takproto_latest_all.deb

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:

FTS_COMPAT = 1

Or use a fixed sleep between events:

PYTAK_SLEEP = 3

See Configuration: FTS_COMPAT for details.