Skip to content

Commit 257e5a5

Browse files
committed
refactor!: complete vdb to search rename with breaking API changes
BREAKING CHANGE: Complete rename from VDB to Search terminology with breaking changes to public APIs. Class and variable renames: - VdbSettings → SearchSettings - vdb_settings → search_settings - Environment prefix: ISCC_VDB_ → ISCC_SEARCH_ API and documentation updates: - API title: "ISCC-VDB API" → "ISCC-Search API" - Update all docstrings and module documentation - Update OpenAPI specification - Update architecture and spec documentation Configuration: - Remove unused devcontainer configuration - Update git pre-commit hook paths All 803 tests pass with 100% coverage. Users must update: - Environment variables: ISCC_VDB_INDEXES_URI → ISCC_SEARCH_INDEXES_URI - Python imports: from iscc_search.settings import SearchSettings, search_settings - Any external integrations expecting "ISCC-VDB API" title
1 parent 76abd25 commit 257e5a5

File tree

18 files changed

+112
-153
lines changed

18 files changed

+112
-153
lines changed

.devcontainer/devcontainer.json

Lines changed: 0 additions & 29 deletions
This file was deleted.

.devcontainer/postCreateCommand.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

CLAUDE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
44

55
## Project Overview
66

7-
**iscc-search** is a high-performance ISCC similarity search engine for ISCC (International Standard Content Code).
8-
In active development (v0.0.1), it provides high-performance vector similarity search for variable-length binary ISCC
9-
vectors using the Normalized Prefix Hamming Distance (NPHD) metric. Built on top of usearch for fast approximate
10-
nearest neighbor search.
7+
**iscc-search** is a high-performance ISCC similarity search engine for ISCC (International Standard Content
8+
Code). In active development (v0.0.1), it provides high-performance vector similarity search for variable-length
9+
binary ISCC vectors using the Normalized Prefix Hamming Distance (NPHD) metric. Built on top of usearch for fast
10+
approximate nearest neighbor search.
1111

1212
## Development Commands
1313

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
>
1212
> The API and features are subject to significant changes. Use at your own risk.
1313
14-
High-performance ISCC similarity search engine for variable-length binary [ISCC](https://iscc.codes) codes with fast
15-
approximate nearest neighbor search.
14+
High-performance ISCC similarity search engine for variable-length binary [ISCC](https://iscc.codes) codes with
15+
fast approximate nearest neighbor search.
1616

1717
- **Github repository**: <https://github.com/iscc/iscc-search/>
1818
- **Documentation** <https://search.iscc.codes/>

docs/architecture.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# ISCC-VDB Architecture
1+
# ISCC-Search Architecture
22

33
## Overview
44

5-
ISCC-VDB implements a clean, protocol-based architecture that supports multiple index implementations through a
6-
unified interface. The system uses Python's `typing.Protocol` to define an index abstraction that enables both
5+
ISCC-Search implements a clean, protocol-based architecture that supports multiple index implementations through
6+
a unified interface. The system uses Python's `typing.Protocol` to define an index abstraction that enables both
77
CLI and REST API frontends to work seamlessly with different storage implementations.
88

99
**Current Implementation Status**:
@@ -100,19 +100,19 @@ All operations are synchronous for simplicity:
100100

101101
### 3. Pydantic Settings-Based Configuration
102102

103-
Single `ISCC_VDB_INDEXES_URI` environment variable determines index implementation:
103+
Single `ISCC_SEARCH_INDEXES_URI` environment variable determines index implementation:
104104

105-
- **memory://**: `ISCC_VDB_INDEXES_URI=memory://` → MemoryIndex (in-memory, no persistence) **[IMPLEMENTED]**
106-
- **Directory path**: `ISCC_VDB_INDEXES_URI=/path/to/index_data` → LmdbIndexManager (file-based persistence)
105+
- **memory://**: `ISCC_SEARCH_INDEXES_URI=memory://` → MemoryIndex (in-memory, no persistence) **[IMPLEMENTED]**
106+
- **Directory path**: `ISCC_SEARCH_INDEXES_URI=/path/to/index_data` → LmdbIndexManager (file-based persistence)
107107
**[IMPLEMENTED]**
108-
- **Postgres DSN**: `ISCC_VDB_INDEXES_URI=postgresql://user:pass@host/db` → PostgresIndex **[PLANNED]**
108+
- **Postgres DSN**: `ISCC_SEARCH_INDEXES_URI=postgresql://user:pass@host/db` → PostgresIndex **[PLANNED]**
109109
- **Default**: Uses `platformdirs` to determine OS-appropriate user data directory → LmdbIndexManager
110110
**[IMPLEMENTED]**
111111

112112
Configuration uses Pydantic Settings for:
113113

114114
- Type validation and coercion
115-
- Environment variable loading with `ISCC_VDB_` prefix
115+
- Environment variable loading with `ISCC_SEARCH_` prefix
116116
- `.env` file support
117117
- Runtime override capability
118118
- Clear documentation of all settings
@@ -222,10 +222,10 @@ All methods are synchronous. Backends may use threading/connection pools interna
222222

223223
### Settings and Configuration (`settings.py`)
224224

225-
**VdbSettings**: Pydantic settings class with:
225+
**SearchSettings**: Pydantic settings class with:
226226

227227
- `indexes_uri` - Location for index data (path or DSN), defaults to OS user data directory
228-
- Environment variable support (`ISCC_VDB_` prefix)
228+
- Environment variable support (`ISCC_SEARCH_` prefix)
229229
- `.env` file support
230230
- `override()` method for runtime configuration changes
231231

@@ -318,8 +318,8 @@ All methods are synchronous. Backends may use threading/connection pools interna
318318
### LMDB Index (Production)
319319

320320
```bash
321-
# Set ISCC_VDB_INDEXES_URI to local path (or use default from platformdirs)
322-
export ISCC_VDB_INDEXES_URI=/path/to/index_data
321+
# Set ISCC_SEARCH_INDEXES_URI to local path (or use default from platformdirs)
322+
export ISCC_SEARCH_INDEXES_URI=/path/to/index_data
323323

324324
# CLI commands
325325
iscc-search create myindex
@@ -335,8 +335,8 @@ uvicorn iscc_search.server.app:app --host 0.0.0.0 --port 8000
335335
### Memory Index (Testing)
336336

337337
```bash
338-
# Set ISCC_VDB_INDEXES_URI to memory:// for in-memory index
339-
export ISCC_VDB_INDEXES_URI=memory://
338+
# Set ISCC_SEARCH_INDEXES_URI to memory:// for in-memory index
339+
export ISCC_SEARCH_INDEXES_URI=memory://
340340

341341
# CLI works with in-memory storage (no persistence)
342342
iscc-search create myindex
@@ -350,8 +350,8 @@ uvicorn iscc_search.server.app:app --host 0.0.0.0 --port 8000
350350
### Postgres Index (Future)
351351

352352
```bash
353-
# Set ISCC_VDB_INDEXES_URI to Postgres connection string
354-
export ISCC_VDB_INDEXES_URI=postgresql://user:password@localhost/isccdb
353+
# Set ISCC_SEARCH_INDEXES_URI to Postgres connection string
354+
export ISCC_SEARCH_INDEXES_URI=postgresql://user:password@localhost/isccdb
355355

356356
# CLI and server work the same way across all backends
357357
iscc-search create myindex
@@ -361,7 +361,7 @@ uvicorn iscc_search.server.app:app --host 0.0.0.0 --port 8000
361361
## Key Benefits
362362

363363
1. **Clean Abstraction**: Protocol-based design enables index swapping without changing frontend code
364-
2. **Simple Configuration**: Single `ISCC_VDB_INDEXES_URI` variable determines entire deployment topology
364+
2. **Simple Configuration**: Single `ISCC_SEARCH_INDEXES_URI` variable determines entire deployment topology
365365
3. **Modular Packages**: Each index implementation is self-contained and independently testable
366366
4. **Synchronous Simplicity**: No async complexity, straightforward implementation
367367
5. **Zero Code Duplication**: CLI and API share identical index implementations
@@ -376,7 +376,7 @@ uvicorn iscc_search.server.app:app --host 0.0.0.0 --port 8000
376376
### Phase 1: Foundation ✓ **COMPLETED**
377377

378378
- Protocol definition (`IsccIndexProtocol`)
379-
- Settings and configuration (`VdbSettings`, `get_index()`)
379+
- Settings and configuration (`SearchSettings`, `get_index()`)
380380
- Schema models from OpenAPI specification
381381
- Index factory with URI parsing
382382

docs/spec.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# ISCC-VDB Spec - Draft
1+
# ISCC-Search Spec - Draft
22

33
A Scalable Nearest Neighbor Search Multi-Index for the International Standard Content Code (ISCC)
44

@@ -41,7 +41,7 @@ The ISCC Framework consist of a collection of python libraries and applications
4141

4242
**Helpful Note**: These repositories are all available on deepwiki
4343

44-
## ISCC-VDB Features
44+
## ISCC-Search Features
4545

4646
- ISCC-CODEs or extended ISCC-UNITs as bit-vectors for fast similarity search
4747
- Distance Metric: Normalized Prefix Hamming Distance (NPHD)

iscc_search/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
__version__ = metadata.version(__package_name__)
99
dirs = PlatformDirs(appname=__package_name__, appauthor=__author__)
1010

11-
from iscc_search.settings import VdbSettings, vdb_settings # noqa: E402
11+
from iscc_search.settings import SearchSettings, search_settings # noqa: E402
1212
from iscc_search.nphd import NphdIndex # noqa: E402
1313
from iscc_search.unit import UnitIndex # noqa: E402
1414
from iscc_search.instance import InstanceIndex # noqa: E402
1515

16-
__all__ = ["NphdIndex", "UnitIndex", "InstanceIndex", "VdbSettings", "vdb_settings"]
16+
__all__ = ["NphdIndex", "UnitIndex", "InstanceIndex", "SearchSettings", "search_settings"]

iscc_search/openapi/openapi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
openapi: 3.1.0
22
info:
3-
title: ISCC-VDB API
3+
title: ISCC-Search API
44
description: A Scalable Nearest Neighbor Search Multi-Index for the International Standard Content Code (ISCC)
55
version: 0.1.0
66
servers:

iscc_search/server/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""FastAPI server for ISCC-VDB API."""
1+
"""FastAPI server for ISCC-Search API."""
22

33
import typing # noqa: F401
44
from contextlib import asynccontextmanager
@@ -45,7 +45,7 @@ def get_index_from_state(request: Request):
4545
# Create FastAPI app instance with lifespan management
4646
app = FastAPI(
4747
lifespan=lifespan,
48-
title="ISCC-VDB API",
48+
title="ISCC-Search API",
4949
description="A Scalable Nearest Neighbor Search Multi-Index for the International Standard Content Code (ISCC)",
5050
version="0.1.0",
5151
docs_url=None, # Disable default docs

iscc_search/server/__main__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
"""Entry point for running ISCC-VDB server as a module."""
1+
"""Entry point for running ISCC-Search server as a module."""
22

33
import uvicorn
44

55

66
def main():
77
# type: () -> None
88
"""
9-
Start the ISCC-VDB API server.
9+
Start the ISCC-Search API server.
1010
1111
Runs uvicorn server with hot reload enabled in development mode.
1212
"""

0 commit comments

Comments
 (0)