-
Notifications
You must be signed in to change notification settings - Fork 4
Defining Neighborly
Neighborly prioritizes simplicity in processing and searching high-dimensional vector data with minimal upfront configuration. The default settings suffice for most use cases, deferring sharding and machine clustering until more pragmatic solutions are evaluated. Neighborly v1.00 operates on a single machine, leveraging more RAM for better indexing and more disk storage for larger vector data volumes. Indexing and tagging data are optional, and its threading model adapts to resource-constrained devices (e.g., mobile), allowing you to focus on your data.
Performance is central to Neighborly's design, ensuring rapid storage and retrieval operations essential for real-time or near-real-time vector data processing. The system is optimized for speed by keeping indexes in memory, making searches fast and efficient.
- Multiple Interfaces: Neighborly functions both as a standalone vector library and a comprehensive vector database, offering multiple interfaces (on-machine API, gRPC, and REST web API). This versatility enables developers to integrate vector functionalities directly into applications or use Neighborly as an external service for managing vector data.
- Cross-Platform Compatibility: Neighborly runs on x86 and ARM CPUs and can operate as a server on Linux, FreeBSD, macOS, and Windows or as an on-device library on iOS and Android.
- Vector Data with CRUD Interface: Vectors in Neighborly can be managed like traditional relational database entries. The system determines the optimal times for I/O-intensive indexing operations, ensuring efficient data management.
Aligned with our simplicity principle, Neighborly is an open database. Administrators are encouraged to secure Neighborly servers behind firewalls and restrict routing to authoritative servers using traditional network methods. The inclusion of ACLs or RBACs will be evaluated post v1.00 launch.