Metadata-Version: 2.4
Name: harlequin-cassandra
Version: 0.1.4
Summary: A Harlequin adapter for Cassandra.
Project-URL: Repository, https://github.com/vkhitrin/harlequin-cassandra
Author-email: Vadim Khitrin <me@vkhitrin.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: <3.14,>=3.10
Requires-Dist: cassandra-driver<4,>=3.29.3
Requires-Dist: harlequin<3,>=1.25
Description-Content-Type: text/markdown

# harlequin-cassandra

> [!CAUTION]
> This adapter is unstable and experimental.
>
> Proceed with caution!

> [!WARNING]
> This adapter does not aim to support [Scylla](https://www.scylladb.com).

> [!NOTE]
> This adapter currently does not support execution profiles, load-balancing
> polices.

This is a [Cassandra](http://cassandra.apache.org) adapter for [Harlequin](https://harlequin.sh).  
It is based on [Datastax' cassandra-driver](https://github.com/datastax/python-driver).

## Integration With Harlequin

**Some quirks are to be expected.**

Cassandra doesn't use cursor(s), thus `HarlequinCursor` and `HarlequinConnection`
behave differently in this adapter.

A manual translation of `cassandra-driver` objects types to Python types is
required for Apache Arrow to work correctly.

In this adapter, [`Transaction Modes`](https://harlequin.sh/docs/transactions) refers to
Cassandra's consistency levels.

![Transaction Modes GIF](./static/transaction_modes.gif)

## Installation

`harlequin-cassandra` depends on `harlequin`, so installing this package will also install Harlequin.

### Using pip

To install this adapter into an activated virtual environment:

```bash
pip install harlequin-cassandra
```

### Using poetry

```bash
poetry add harlequin-cassandra
```

### Using pipx

If you do not already have Harlequin installed:

```bash
pip install harlequin-cassandra
```

If you would like to add the Cassandra adapter to an existing Harlequin installation:

```bash
pipx inject harlequin harlequin-cassandra
```

### As an Extra

```bash
pip install harlequin[cassandra]
```

## Usage and Configuration

You can open Harlequin with the Cassandra adapter by selecting it with the `-a` option and passing an initial hostname and credentials(if required).

```bash
harlequin -a cassandra "localhost" --username "cassandra" --password "cassandra"
```

Many more options are available; to see the full list, run:

```bash
harlequin --help
```

## Things To Explore

Missing advanced configuration that may be of interest:

- [ ] Add an option to support execution profiles.
- [ ] Add an option to support load-balancing policies.
