SDKPython
These are the docs for Apache Iggy 0.8, kept for reference and no longer updated. Server 0.9.0 changed the wire protocol, so 0.8 clients and servers do not work with 0.9.0. Read the current docs.
Examples
Working Python examples from the core repository, covering connection strings, message headers and TLS.
Working examples are available in the examples/python directory. CI exercises them, so they always match the current SDK:
- getting-started - producer and consumer with optional TLS via
TcpConfig - basic - producer and consumer using connection strings
- message-headers - user headers with
str,bytes,bool,int, andfloatvalues, in two variants:plain-headers(plaindict, the SDK infers wire types) andtyped-headers(explicitHeaderKey/HeaderValue)
Running the examples
Start an Iggy server first:
# Latest release
docker run --rm \
--cap-add=SYS_NICE --security-opt seccomp=unconfined --ulimit memlock=-1:-1 \
-p 8090:8090 \
-e IGGY_TCP_ADDRESS=0.0.0.0:8090 \
-e IGGY_NODE_ADVERTISED_ADDRESS=localhost \
-e IGGY_ROOT_USERNAME=iggy -e IGGY_ROOT_PASSWORD=iggy \
apache/iggy:latest
# Or from the repository source
cargo run --bin iggy-server -- --fresh --with-default-root-credentialsThe environment variables make the server reachable through the published port (it binds to 127.0.0.1 inside the container by default) and set the iggy/iggy root credentials the examples default to.
Then, from examples/python, install the dependencies and run a producer/consumer pair:
# Using uv
uv sync
uv run getting-started/producer.py
uv run getting-started/consumer.py
# Without uv
python -m venv .venv
source .venv/bin/activate
pip install .
python getting-started/producer.py
python getting-started/consumer.pyFor the quick-start code itself, see the Python SDK intro.
