Metadata-Version: 2.4
Name: vast-daft
Version: 0.1.1
Summary: Daft custom connector (DataSource/DataSink) for VastDB
Project-URL: Homepage, https://github.com/vast-data/vast-daft
Project-URL: Repository, https://github.com/vast-data/vast-daft
Author-email: Ofer Helman <ofer.helman@vastdata.com>
License-Expression: Apache-2.0
Requires-Python: >=3.12
Requires-Dist: daft==0.7.10
Requires-Dist: ibis-framework>=9.0
Requires-Dist: numpy<2
Requires-Dist: pyarrow>=15.0
Requires-Dist: vastdb>=1.2
Provides-Extra: dev
Requires-Dist: pyiceberg[s3fs,sql-sqlite]>=0.11.1; extra == 'dev'
Requires-Dist: pylance>=0.39.0; extra == 'dev'
Requires-Dist: pyright>=1.1; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: python-dotenv>=1.0; extra == 'dev'
Requires-Dist: ray==2.53.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: examples
Requires-Dist: python-dotenv>=1.0; extra == 'examples'
Description-Content-Type: text/markdown

# vast-daft

Daft custom connector (`DataSource` / `DataSink`) for [VastDB](https://vastdata.com).

## Installation

```bash
pip install vast-daft
```

Or with uv:

```bash
uv add vast-daft
```

## Quick Start

### Reading from VastDB

```python
import pyarrow as pa
from vast_daft import VastDBConfig, VastDBDataSource

config = VastDBConfig(
    endpoint="http://vastdb:9090",
    access_key="YOUR_ACCESS_KEY",
    secret_key="YOUR_SECRET_KEY",
    bucket="my-bucket",
    schema="my-schema",
)

schema = pa.schema([
    ("id", pa.string()),
    ("name", pa.string()),
    ("value", pa.float64()),
])

source = VastDBDataSource(config, "my_table", schema)
df = source.read()
df.show()
```

### Writing to VastDB

```python
import daft
from vast_daft import VastDBConfig, VastDBDataSink

config = VastDBConfig(...)
schema = pa.schema([("id", pa.string()), ("value", pa.float64())])

sink = VastDBDataSink(config, "my_table", schema)
daft.from_pydict({"id": ["a", "b"], "value": [1.0, 2.0]}).write_sink(sink).show()
```
