# Connectors overview

> **CocoIndex v1, Rust SDK (experimental).** This page documents the CocoIndex **v1** Rust SDK (the `cocoindex` crate). The Rust SDK is experimental: any release may change or remove its API, and it is not yet published on crates.io. The Python SDK pages are at https://cocoindex.io/docs/.
>
> Source: https://cocoindex.io/docs/rust/connectors/ · Rust docs index: https://cocoindex.io/docs/rust/llms.txt · Rust SDK tour: https://github.com/cocoindex-io/cocoindex/blob/main/rust/sdk/SHOWCASE.md · Rust examples: https://github.com/cocoindex-io/cocoindex/tree/main/examples/rust

A *connector* links a CocoIndex flow to an external system. It plays one or both of two roles:

- **As source** — imports rows into a flow, with change capture so only what actually changed is reprocessed.
- **As target** — exports [target states](/docs/rust/programming_guide/target_state/) from a flow and keeps the external system in sync via incremental upserts and deletions.

Some connectors do both. Each page documents the APIs for whichever roles the system supports, under `## As source` / `## As target` sections.

Each connector lives in `cocoindex::connectors::<name>` behind a Cargo feature of the same name: `cocoindex::connectors::postgres` needs the `postgres` feature, `cocoindex::connectors::qdrant` the `qdrant` feature, and so on. Two names differ: the Google Drive source is `cocoindex::connectors::gdrive` behind the `google_drive` feature, and the local filesystem connector is `cocoindex::resources::fs`, which is always compiled (its live watch needs the `fs_live` feature).

The Discord source is Python-only: the Rust SDK has no Discord connector, so this page does not list it. See the [Python Discord connector](/docs/connectors/discord/).

## Sources

Connectors that feed rows into a flow.

| Connector | Also a target | Reads from |
|-----------|---------------|------------|
| [Local filesystem](/docs/rust/connectors/localfs/)         | ✅ | Local files and directories, with live watch mode |
| [Amazon S3](/docs/rust/connectors/amazon_s3/)              |    | S3 buckets and S3-compatible stores (MinIO, Tigris) |
| [Azure Blob Storage](/docs/rust/connectors/azure_blob/)    |    | Azure Blob Storage containers |
| [Google Drive](/docs/rust/connectors/google_drive/)        |    | Google Drive folders, via a service account or a personal account signed in with OAuth |
| [OCI Object Storage](/docs/rust/connectors/oci_object_storage/) | | Oracle Cloud object storage, driven by OCI Streaming events |
| [Postgres](/docs/rust/connectors/postgres/)                | ✅ | PostgreSQL tables via `read_table` |
| [Kafka](/docs/rust/connectors/kafka/)                      | ✅ | Topics as live keyed maps or raw event streams |
| [Iggy](/docs/rust/connectors/iggy/)                        | ✅ | Apache Iggy topics as live streams or maps |

## Targets

Connectors that export data out of a flow. They're grouped by the kind of store, but most also handle vector search.

### Relational and analytical

| Connector | Also a source | Notes |
|-----------|---------------|-------|
| [Postgres](/docs/rust/connectors/postgres/)   | ✅ | Relational database with `pgvector` (ivfflat / hnsw) |
| [Apache Doris](/docs/rust/connectors/doris/)  |    | Analytical database, HNSW/IVF vector + inverted full-text indexes |
| [SQLite](/docs/rust/connectors/sqlite/)       |    | Embedded database, optional vector search via `sqlite-vec` |
| [Snowflake](/docs/rust/connectors/snowflake/) |    | Cloud data warehouse — managed DDL, MERGE upserts, incremental deletes |
| [BigQuery](/docs/rust/connectors/bigquery/)   |    | Cloud data warehouse with managed DDL, MERGE upserts, incremental deletes |

### Vector databases

| Connector | Notes |
|-----------|-------|
| [LanceDB](/docs/rust/connectors/lancedb/)         | Embedded vector DB, vector + full-text (FTS) indexes |
| [Qdrant](/docs/rust/connectors/qdrant/)           | Single, named, and multi-vector points with schemaless payloads |
| [Turbopuffer](/docs/rust/connectors/turbopuffer/) | Namespaces with single or named vectors |
| [Valkey](/docs/rust/connectors/valkey/)           | Search indexes with vector similarity (HNSW / FLAT) |
| [zvec](/docs/rust/connectors/zvec/)               | Embedded, in-process vector DB with dense and sparse vectors |

### Property graph

| Connector | Notes |
|-----------|-------|
| [Neo4j](/docs/rust/connectors/neo4j/)         | Property graph over Bolt — node and relationship tables, vector indexes |
| [FalkorDB](/docs/rust/connectors/falkordb/)   | Redis-backed Cypher graph, per-graph multitenancy, vector indexes |
| [SurrealDB](/docs/rust/connectors/surrealdb/) | Multi-model — normal and relation (edge) tables, vector indexes |

### Message streams

| Connector | Also a source | Notes |
|-----------|---------------|-------|
| [Kafka](/docs/rust/connectors/kafka/) | ✅ | Produce messages as target states with at-least-once semantics |
| [Iggy](/docs/rust/connectors/iggy/)   | ✅ | Produce messages to Apache Iggy topics |

## Beyond the built-ins

If you need a system that isn't listed here, implement a [custom target connector](/docs/rust/advanced_topics/custom_target_connector/) as a building block of your flow.
