> Explore Qdrant's agent skills catalog at https://skills.qdrant.tech/
> Search the documentation at https://skills.qdrant.tech/search?query=your+query+here
> Use this file to discover all available pages: https://qdrant.tech/llms.txt
# The Edge API

To work with a Qdrant Edge Shard, use the [Python Bindings for Qdrant Edge](https://pypi.org/project/qdrant-edge-py/) package or the [`qdrant-edge` Rust crate](https://crates.io/crates/qdrant-edge). Both expose an `EdgeShard` type with methods to manage data, query it, and restore snapshots.

For task-oriented introductions, refer to the [Quickstart](https://qdrant.tech/documentation/edge/edge-quickstart/index.md) and the [Data Synchronization Patterns](https://qdrant.tech/documentation/edge/edge-data-synchronization-patterns/index.md).

## Reference

| Page | What it covers |
| --- | --- |
| [Shard Lifecycle](https://qdrant.tech/documentation/edge/edge-api/shard-lifecycle/index.md) | Creating, loading, inspecting, flushing, and closing an Edge Shard, and reading its metadata with `info` |
| [Configuration](https://qdrant.tech/documentation/edge/edge-api/configuration/index.md) | `EdgeConfig`, dense and sparse vector parameters, optimizer settings and `optimize`, and WAL options |
| [Updating Data](https://qdrant.tech/documentation/edge/edge-api/updating-data/index.md) | The `update` method and the full set of update operations |
| [Reading Data](https://qdrant.tech/documentation/edge/edge-api/reading-data/index.md) | `query`, `scroll`, grouping, `retrieve`, `count`, and `facet` |
| [Snapshots](https://qdrant.tech/documentation/edge/edge-api/snapshots/index.md) | Unpacking snapshots, reading manifests, and applying snapshots to a shard |

## Language Differences

The Python bindings and the Rust crate cover the same core surface, but they are not identical. Each method notes the languages it is available in. The most significant differences are:

- Rust exposes [`query_groups`](https://qdrant.tech/documentation/edge/edge-api/reading-data/index.md#query_groups) and [`search_matrix`](https://qdrant.tech/documentation/edge/edge-api/reading-data/index.md#search_matrix), which have no Python equivalent. Both require the `EdgeShardRead` trait in scope.
- Rust closes a shard by dropping it, while Python has an explicit `close` method.
- WAL options and the configuration setters are Rust only.
- Python's [`EdgeConfig`](https://qdrant.tech/documentation/edge/edge-api/configuration/index.md#edgeconfig) always requires `vectors` or `sparse_vectors`, so adjusting a tunable parameter on an existing shard means redeclaring its vectors. Rust can build a configuration that sets only tunables.
- [Applying a snapshot](https://qdrant.tech/documentation/edge/edge-api/snapshots/index.md#apply-a-snapshot) updates the shard in place in Python, but returns a new shard in Rust.

## More Examples

The Qdrant GitHub repository contains examples of using the Qdrant Edge API in [Python](https://github.com/qdrant/qdrant/tree/dev/lib/edge/python/examples) and [Rust](https://github.com/qdrant/qdrant/tree/dev/lib/edge/publish/examples).
