Metadata-Version: 2.5
Name: nexura-qdrant
Version: 0.4.0
Summary: Qdrant vector store for nexura-runtime: workspace-scoped collections and immutable index generations.
Project-URL: Homepage, https://github.com/Liceron/nexura
Project-URL: Documentation, https://github.com/Liceron/nexura/blob/main/docs/README.md
Project-URL: Source, https://github.com/Liceron/nexura
Project-URL: Issues, https://github.com/Liceron/nexura/issues
Project-URL: Changelog, https://github.com/Liceron/nexura/blob/main/CHANGELOG.md
Author-email: Liceron <info@liceron.in>
License-Expression: MIT
License-File: LICENSE
Keywords: agents,qdrant,rag,retrieval,vector-store
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: <3.13,>=3.12
Requires-Dist: nexura-agents==0.4.0
Requires-Dist: nexura-runtime==0.4.0
Requires-Dist: qdrant-client<2.0.0,>=1.12.0
Description-Content-Type: text/markdown

# Nexura Qdrant

A Qdrant vector store with workspace-scoped collections and immutable index generations.

## Install

```bash
pip install nexura-qdrant
```

Alpha (0.4): `pip install nexura-qdrant`. See [package installation](https://github.com/Liceron/nexura/blob/main/docs/packages.md).

## Minimal example

Construction is lazy; this example refuses zero dimensions before any request. A running Qdrant is required for `create_collection`, `upsert` and `search`. Workspace keys scope records and generations; active index generations are immutable. Built-in runtime vector stores work without this add-on.

```python
import asyncio

from nexura_runtime.knowledge.vector.errors import VectorDimensionMismatchError
from nexura_runtime.knowledge.vector.store import VectorStore

from nexura_qdrant import QdrantVectorStoreAdapter


async def main() -> None:
    store = QdrantVectorStoreAdapter(url="http://localhost:6333")
    assert isinstance(store, VectorStore) and store.is_available
    try:
        await store.create_collection("ws-1", "faq", dimensions=0)
    except VectorDimensionMismatchError as exc:
        print("refused before any request:", exc)
    await store.close()


asyncio.run(main())
```

## Status and limits

> Status: **alpha** (0.4), Python 3.12 (the same as `nexura-runtime`). Tested against a local
> disposable Qdrant service; never against Qdrant Cloud.

## Documentation and licence

[Main documentation](https://github.com/Liceron/nexura/blob/main/docs/README.md) · [Full guide](https://github.com/Liceron/nexura/blob/main/docs/knowledge.md). MIT, Copyright (c) 2026 Liceron. See [LICENSE](https://github.com/Liceron/nexura/blob/main/packages/nexura-qdrant/LICENSE).
