Metadata-Version: 2.4
Name: db-connectors
Version: 0.1.0
Summary: A collection of database and message broker connectors for Python applications
Project-URL: Homepage, https://github.com/deepblue597/db-connectors
Project-URL: Repository, https://github.com/deepblue597/db-connectors.git
Project-URL: Issues, https://github.com/deepblue597/db-connectors/issues
Author-email: Jason <ikakandris@gmail.com>
License: MIT
Keywords: connectors,database,kafka,minio,postgresql,timescale
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Requires-Dist: boto3>=1.34.0
Requires-Dist: confluent-kafka>=2.3.0
Requires-Dist: psycopg2-binary>=2.9.0
Requires-Dist: quixstreams>=2.0.0
Requires-Dist: sqlalchemy>=2.0.0
Description-Content-Type: text/markdown

# DB Connectors

A Python library providing unified connectors for various databases and message brokers.

## Features

- **Kafka Integration**: Both consumer and producer connectors using confluent-kafka and quixstreams
- **MinIO/S3 Support**: Object storage connector using boto3
- **TimescaleDB/PostgreSQL**: Database connector using SQLAlchemy
- **Unified Interface**: All connectors inherit from a common base class

## Installation

```bash
pip install db-connectors
```

## Quick Start

### Kafka Producer

```python
from db_connectors import KafkaProducerConnector

producer = KafkaProducerConnector(
    address="localhost",
    port=9092,
    target="my-topic"
)
producer.connect()
producer.produce_message("Hello, Kafka!")
producer.disconnect()
```

### MinIO Connector

```python
from db_connectors import MinIOConnector

minio = MinIOConnector(
    address="localhost",
    port=9000,
    target="my-bucket"
)
minio.connect()
minio.upload_object("file.txt", "Hello, MinIO!")
minio.disconnect()
```

### TimescaleDB Connector

```python
from db_connectors import TimescaleConnector

timescale = TimescaleConnector(
    address="localhost",
    port=5432,
    target="mydb"
)
timescale.connect()
# Use timescale.engine for SQLAlchemy operations
timescale.disconnect()
```

## Available Connectors

- `Connector` - Base abstract class
- `KafkaConnector` - Kafka consumer using quixstreams
- `KafkaProducerConnector` - Kafka producer using confluent-kafka
- `MinIOConnector` - MinIO/S3 object storage
- `TimescaleConnector` - TimescaleDB/PostgreSQL database

## Requirements

- Python >= 3.12
- confluent-kafka >= 2.3.0
- quixstreams >= 2.0.0
- boto3 >= 1.34.0
- sqlalchemy >= 2.0.0
- psycopg2-binary >= 2.9.0

## License

MIT License
