xgdb-connect -- Connector Framework for xrayGraphDB
Standalone Python processes that consume data from external sources and write to xrayGraphDB over xrayProtocol (port 7689).
Architecture
xgdb_connect/ Core framework
protocol.py xrayProtocol v1 binary client
base.py BaseConnector (connect, transform, send, checkpoint)
config.py YAML config loader
transform.py Message-to-Cypher transformer
connectors/ Source-specific implementations
nats_connector.py NATS/JetStream
redis_connector.py Redis Streams (XREADGROUP)
kafka_connector.py Apache Kafka (consumer groups)
postgres_connector.py PostgreSQL logical replication (pgoutput CDC)
mysql_connector.py MySQL binlog CDC
Installation
# Core only
pip install .
# With specific connector dependencies
pip install ".[nats]"
pip install ".[redis]"
pip install ".[kafka]"
pip install ".[postgres]"
pip install ".[mysql]"
# Everything
pip install ".[all]"
Usage
Each connector reads a YAML config file and runs as a standalone process:
python -m connectors.nats_connector --config nats.yaml
python -m connectors.redis_connector --config redis.yaml
python -m connectors.kafka_connector --config kafka.yaml
python -m connectors.postgres_connector --config postgres.yaml
python -m connectors.mysql_connector --config mysql.yaml
Config Format
source: nats
connection:
url: nats://localhost:4222
subject: "events.>"
xraygraphdb:
host: localhost
port: 7689
user: admin
password: secret
transform:
node:
label: Event
id_field: event_id
properties:
- source_field: timestamp
target: ts
- source_field: type
target: event_type
edge:
type: TRIGGERED_BY
from_field: event_id
to_field: parent_id
batch_size: 1000
checkpoint_file: /var/lib/xgdb-connect/nats.checkpoint
Features
- Batch writes -- configurable batch size, UNWIND-based Cypher for efficiency
- Checkpoint tracking -- saves last offset/position to disk for restart recovery
- Backpressure -- batches are flushed when full, with configurable size
- Graceful shutdown -- handles SIGTERM/SIGINT, flushes remaining batch, saves checkpoint
- Structured logging -- timestamped log output with configurable level
- Metrics -- messages/sec, latency, error counts logged at configurable intervals
- Reconnection -- automatic reconnect to xrayGraphDB with configurable retry (max 2 attempts)
- Transform engine -- configurable field mappings with dot-path extraction and type casting
Copyright
Copyright 2026 eMTAi LLC. All rights reserved. Patent pending.
Metadata
Release files for xgdb-connect 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xgdb_connect-1.0.0.tar.gz | 65.7 kB | Without provenance | Details for xgdb_connect-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xgdb_connect-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for xgdb_connect-1.0.0-py3-none-any.whl |
Total release size: 152.4 kB
Release files / xgdb_connect-1.0.0.tar.gz
| Download URL | xgdb_connect-1.0.0.tar.gz |
|---|---|
| Size | 65.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ec06175100dd127fcbdcf162d5342e1cba003a63d301594a7ef7826dd4ea1505
|
|
BLAKE2b-256 checksum How to use checksums |
6eb9855ff8ac65d8df7eebb4fd190f06c8c3b9c6ea50b0eaf0c875e3c5c4b5c4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.8
|
Release files / xgdb_connect-1.0.0-py3-none-any.whl
| Download URL | xgdb_connect-1.0.0-py3-none-any.whl |
|---|---|
| Size | 86.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
27474a46cd26538334b469519017f36b33675e05716ac80966ab6db5d27530ae
|
|
BLAKE2b-256 checksum How to use checksums |
42e88408679ec63565e99682eceaf857d61ec1f138b72772f0d997d94f6636e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.8
|
Security for xgdb-connect 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.