LangChain integration for CockroachDB with native vector support
Project description
langchain-cockroachdb
LangChain integration for CockroachDB with native vector support
Quick Start • Features • Documentation • Examples • Contributing
Overview
Build LLM applications with CockroachDB's distributed SQL database and native vector search capabilities. This integration provides:
- 🎯 Native Vector Support - CockroachDB's
VECTORtype - 🚀 C-SPANN Indexes - Distributed vector indexes optimized for scale
- 🔄 Automatic Retries - Handles serialization errors transparently
- ⚡ Async & Sync APIs - Choose based on your use case
- 🏗️ Distributed by Design - Built for CockroachDB's architecture
Quick Start
Installation
pip install langchain-cockroachdb
Basic Usage
import asyncio
from langchain_cockroachdb import AsyncCockroachDBVectorStore, CockroachDBEngine
from langchain_openai import OpenAIEmbeddings
async def main():
# Initialize
engine = CockroachDBEngine.from_connection_string(
"cockroachdb://user:pass@host:26257/db"
)
await engine.ainit_vectorstore_table(
table_name="documents",
vector_dimension=1536,
)
vectorstore = AsyncCockroachDBVectorStore(
engine=engine,
embeddings=OpenAIEmbeddings(),
collection_name="documents",
)
# Add documents
await vectorstore.aadd_texts([
"CockroachDB is a distributed SQL database",
"LangChain makes building LLM apps easy",
])
# Search
results = await vectorstore.asimilarity_search(
"Tell me about databases",
k=2
)
for doc in results:
print(doc.page_content)
await engine.aclose()
asyncio.run(main())
Features
Vector Store
- Native
VECTORtype support with C-SPANN indexes - Advanced metadata filtering (
$and,$or,$gt,$in, etc.) - Hybrid search (full-text + vector similarity)
- Multi-tenant index support with prefix columns
Reliability
- Automatic retry logic with exponential backoff
- Connection pooling with health checks
- Configurable for different workloads
- Built for SERIALIZABLE isolation
Developer Experience
- Async-first design for high concurrency
- Sync wrapper for simple scripts
- Type-safe with full type hints
- Comprehensive test suite (92 tests)
Documentation
Getting Started:
Guides:
Examples
quickstart.py- Get started in 5 minutessync_usage.py- Synchronous APIvector_indexes.py- Index optimizationhybrid_search.py- FTS + vector searchmetadata_filtering.py- Advanced querieschat_history.py- Persistent conversationsretry_configuration.py- Configuration patterns
Development
Setup
# Clone repository
git clone https://github.com/viragtripathi/langchain-cockroachdb.git
cd langchain-cockroachdb
# Install dependencies
pip install -e ".[dev]"
# Start CockroachDB
docker-compose up -d
# Run tests
make test
Documentation
# Install docs dependencies
pip install -e ".[docs]"
# Serve documentation locally
mkdocs serve
# Open http://127.0.0.1:8000
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Why CockroachDB?
- Distributed SQL - Scale horizontally across regions
- Native Vector Support - First-class
VECTORtype and C-SPANN indexes - Strong Consistency - SERIALIZABLE isolation by default
- Cloud Native - Deploy anywhere (AWS, GCP, Azure, on-prem)
- PostgreSQL Compatible - Familiar SQL with distributed superpowers
License
Apache License 2.0 - see LICENSE for details.
Acknowledgments
Built for the CockroachDB and LangChain communities.
- CockroachDB - Distributed SQL database
- LangChain - LLM application framework
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file langchain_cockroachdb-0.1.0.tar.gz.
File metadata
- Download URL: langchain_cockroachdb-0.1.0.tar.gz
- Upload date:
- Size: 308.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f2343a7a03f3cc5fc18f2653585eee1a2b8af679a40d3921274521ab647c20e
|
|
| MD5 |
76cf82542f9109cea94866fe0231dd71
|
|
| BLAKE2b-256 |
711b73a061c7b82f289c22b140610e9f8c0ed1a9630e4c1f5cec9fd45a5fd2ca
|
File details
Details for the file langchain_cockroachdb-0.1.0-py3-none-any.whl.
File metadata
- Download URL: langchain_cockroachdb-0.1.0-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0a022af86661bb52e96cbe3dbc688437baa4eea01f87838f94695556dcca159
|
|
| MD5 |
bb8cd3ec9d4576ed3c32fb0a25178af8
|
|
| BLAKE2b-256 |
d3f284f8fe32113bee8a082941f06c4d11e5a84e642eb340f9a6f68e724f6bb2
|