Metadata-Version: 2.4
Name: cyborgdb-service
Version: 0.16.0
Summary: REST Server for CyborgDB: The Confidential Vector Database
Author: Cyborg Inc.
License: Proprietary
Project-URL: Homepage, https://www.cyborg.co
Project-URL: Documentation, https://docs.cyborg.co
Keywords: CyborgDB Service
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: C++
Classifier: Topic :: Database
Classifier: Topic :: Database :: Database Engines/Servers
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.68.0
Requires-Dist: uvicorn[standard]>=0.15.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: requests>=2.25.0
Requires-Dist: numpy>=1.21.0
Requires-Dist: packaging>=21.0
Requires-Dist: cyborgdb-core<0.17.0,>=0.16.0.dev0
Provides-Extra: cuda
Requires-Dist: cyborgdb-core[cuda]; extra == "cuda"
Provides-Extra: embeddings
Requires-Dist: sentence-transformers>=2.2.0; extra == "embeddings"
Provides-Extra: all
Requires-Dist: cyborgdb-core[cuda]; extra == "all"
Requires-Dist: sentence-transformers>=2.2.0; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: pytest-cov>=6.0.0; extra == "dev"
Requires-Dist: httpx>=0.25.0; extra == "dev"
Requires-Dist: ruff>=0.8.0; extra == "dev"
Dynamic: license-file

# CyborgDB Service

![PyPI - Version](https://img.shields.io/pypi/v/cyborgdb_service)
![PyPI - License](https://img.shields.io/pypi/l/cyborgdb_service)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cyborgdb_service)

A FastAPI-based REST API wrapper for [CyborgDB](https://docs.cyborg.co), providing Confidential Vector DB capabilities over HTTP. It enables you to ingest & search vectors embeddings in a privacy-preserving manner, without revealing the contents of the vectors themselves. CyborgDB works as a standalone database as well as with existing DBs (e.g., Postgres, Redis) and enables you to add, query and retrieve vector embeddings with transparent end-to-end encryption.

## Features

- **End-to-End Encryption**: Vector embeddings remain encrypted throughout their lifecycle, including at search time
- **Zero-Trust Design**: Novel architecture keeps confidential inference data secure
- **High Performance**: GPU-accelerated indexing and retrieval with CUDA support (configurable per operation)
- **Familiar API**: Easy integration with existing AI workflows
- **Multiple Backing Stores**: Works with PostgreSQL, Redis, S3, and in-memory storage
- **Cloud Ready**: Supports AWS RDS, AWS ElastiCache, Azure Database for PostgreSQL, Azure Cache for Redis, Google Cloud SQL, and Google Cloud Memorystore

## Getting Started

To get started in minutes, check out our [Quickstart Guide](https://docs.cyborg.co/quickstart).

### Installation

1. Install `cyborgdb-service`
```bash
pip install cyborgdb-service
```

2. Set API Key as environment variable
```bash
export CYBORGDB_API_KEY=your_api_key_here
```

3. [Optional] Set configuration environment variables
```bash
export CYBORGDB_DB_TYPE='standalone|redis|postgres|s3'
export CYBORGDB_CONNECTION_STRING=your_connection_string_here
```

**Tip:** Run `cyborgdb-service --help` for a detailed list of all configuration options.

4. Run the server

```bash
cyborgdb-service
```

### API Key Configuration

You need to provide your API key using **any** of these methods:

#### Method 1: Environment Variable (Easiest)

```bash
export CYBORGDB_API_KEY=your_api_key_here
cyborgdb-service
```

#### Method 2: .env File

Create a `.env` file in the project root:
```
CYBORGDB_API_KEY=your_api_key_here
```
Then run:
```bash
cyborgdb-service
```

#### Method 3: Inline with Launch
```bash
CYBORGDB_API_KEY=your_api_key_here cyborgdb-service
```



## Documentation

For more information on CyborgDB, see the [Cyborg Docs](https://docs.cyborg.co).

## License

CyborgDB Service is licensed under the MIT License. The underlying library, CyborgDB Core, is licensed under Cyborg's [Terms of Service](https://www.cyborg.co/terms-of-service).
