A high-performance Python client for real-time management of XTablesServer network tables, designed for robotics and complex data-driven systems.
Project description
XTablesClient
XTablesClient is a Python client library designed to interact with the XTables server, allowing you to send and receive messages, subscribe to updates, and manage communication through ZeroMQ (ZMQ) sockets. The client supports publishing, subscribing, and retrieving various data types (strings, integers, booleans, arrays, and more) to/from the server.
Features
- Socket Communication: Uses ZeroMQ for push, request, and subscription communication with the XTables server.
- Subscription Management: Allows subscribing to specific keys or to all updates.
- Multiple Data Types: Supports sending and receiving a variety of data types, including strings, integers, booleans, arrays, and raw bytes.
- mDNS Support: Automatically resolves the server's IP address using Zeroconf if the hostname is not provided.
Installation
To install XTablesClient, simply use pip:
pip install XTablesClient
Usage
Basic Example
from XTablesClient import XTablesClient
# Initialize the client
client = XTablesClient()
# Publish a string message
client.publish("some_key", b"Hello, XTables!")
# Subscribe to a key and handle incoming messages
def message_handler(message):
print(f"Received message for key: {message.key} with value: {message.value}")
client.subscribe("some_key", message_handler)
# Retrieve data
data = client.getString("some_key")
print(data)
Available Methods
Publishing Data
publish(key: str, value: str): Publish a string value to the server.putString(key: str, value: str): Put a string value in the XTable.putInteger(key: str, value: int): Put an integer value.putBoolean(key: str, value: bool): Put a boolean value.
Subscribing to Updates
subscribe(key: str, consumer: Callable): Subscribe to updates for a specific key.subscribe_all(consumer: Callable): Subscribe to updates for all keys.
Retrieving Data
getString(key: str): Get a string value from the server.getInteger(key: str): Get an integer value.getBoolean(key: str): Get a boolean value.getArray(key: str): Get an array of values.
Documentation
- XTablesClient is built with simplicity in mind and uses ZeroMQ for efficient communication with the XTables server. It can be easily extended or modified for custom use cases.
- The package uses Zeroconf to automatically discover the server in your network if the IP is not provided.
License
XTablesClient is licensed under the MIT License. See the LICENSE file for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xtablesclient-5.1.9.tar.gz.
File metadata
- Download URL: xtablesclient-5.1.9.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
307da03932641fc48c726503fb22a7abf6c54cbe0564a37e95c9a3ace0c311b0
|
|
| MD5 |
c8270acc16361e6a756992f38feba6af
|
|
| BLAKE2b-256 |
ac184d86f623158ef095694fb894b0b2a5b81ed00a4ac460307b1ceab0371212
|
File details
Details for the file XTablesClient-5.1.9-py3-none-any.whl.
File metadata
- Download URL: XTablesClient-5.1.9-py3-none-any.whl
- Upload date:
- Size: 21.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a08d88d72c0dd89a26199685fadda91e777012fcbf4bce589aee2e6033286f5
|
|
| MD5 |
da2293c2d158bfe83f6d7a5bbefe7989
|
|
| BLAKE2b-256 |
687e139ebee2e308b1e5b112f823b928ab4889e6c7f1b68672cf0134ac54969f
|