What Is Qdrant Edge?

Qdrant Edge is a lightweight, embedded vector search engine for in-process retrieval with a minimal memory footprint and no background services. Qdrant Edge is designed for applications requiring low-latency vector search in environments with limited or intermittent connectivity, such as robots, kiosks, home assistants, and mobile phones.

Unlike Qdrant Server, which uses a client-server architecture, Qdrant Edge runs inside the application process. Think of it as SQLite, but for vector search. Data is stored and queried locally, ensuring low-latency access and enhanced privacy since data does not need to be transmitted to an external server. That said, Qdrant Edge provides APIs to synchronize data with a Qdrant server. This enables you to offload heavy computations such as indexing to more powerful server instances, back up and restore data, and centrally aggregate data from multiple edge devices.

Qdrant Edge Shard

Qdrant Edge is built around the concept of an Edge Shard: a self-contained storage unit that can operate independently. Each Edge Shard manages its own data, including vector and payload storage, and can perform local search and retrieval operations.

Qdrant Edge Shards operate on edge devices

To work with a Qdrant Edge Shard, use the Python Bindings for Qdrant Edge package or the qdrant-edge Rust crate. This library provides an EdgeShard class with methods to manage data, query it, and restore snapshots:

  • new (Rust) / create (Python): Creates a new Edge Shard at the given path with the provided configuration. Fails if the path already contains data.
  • load: Initializes an Edge Shard by reading existing data and optionally the configuration from disk.
  • update: Updates the data.
  • query: Queries the data.
  • facet: Returns the top N distinct values of a payload field, sorted by the number of points that have each value.
  • scroll: Returns all points.
  • count: Returns the number of points.
  • retrieve: Retrieves points with the given IDs.
  • flush: Flushes the data to ensure that all writes have been persisted to disk.
  • close: Cleanly destroys the shard instance, ensuring the data is flushed (Python). The data is persisted on disk and can be used to create another shard. In Rust, use the Drop trait to ensure the shard is closed when it goes out of scope.
  • optimize: Optimizes the Edge Shard by removing data marked for deletion, merging segments, and creating indexes.
  • info: Returns metadata information about the shard.
  • unpack_snapshot: Unpacks a snapshot on disk.
  • snapshot_manifest: Returns the current shard’s snapshot manifest.
  • recover_partial_snapshot (Rust) / update_from_snapshot (Python): Applies a snapshot to the shard.

Using Qdrant Edge

TypeGuideWhat you’ll learn
BeginnerQdrant Edge QuickstartGet started with Qdrant Edge and learn the basics of managing and querying data
BeginnerOn-Device EmbeddingsGenerate vector embeddings directly on edge devices using FastEmbed
ReferenceData Synchronization PatternsOverview of patterns for synchronizing data between Edge Shards and Qdrant server collections
AdvancedSynchronize with a ServerSynchronize an Edge Shard with a Qdrant server collection to offload indexing and synchronize data between devices

More Examples

The Qdrant GitHub repository contains examples of using the Qdrant Edge API in Python and Rust.

Was this page useful?

Thank you for your feedback! 🙏

We are sorry to hear that. 😔 You can edit this page on GitHub, or create a GitHub issue.