Skip to content

Python bindings for Qdrant on Edge#7312

Merged
generall merged 3 commits intodevfrom
qdrant-edge-python-mvp
Oct 3, 2025
Merged

Python bindings for Qdrant on Edge#7312
generall merged 3 commits intodevfrom
qdrant-edge-python-mvp

Conversation

@ffuugoo
Copy link
Contributor

@ffuugoo ffuugoo commented Sep 25, 2025

This PR Implements partial Python bindings for Qdrant Edge. So far only basic upsertion and search are implemented, but bindings are boilerplate-heavy, so more types and methods would be covered in follow-up PRs.

cd lib/edge/python

python -m venv .venv
source .venv/bin/activate

pip install --user maturin
maturin develop --no-default-features

cd examples
python qdrant-edge.py

All Submissions:

  • Contributions should target the dev branch. Did you create your branch from dev?
  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  1. Does your submission pass tests?
  2. Have you formatted your code locally using cargo +nightly fmt --all command prior to submission?
  3. Have you checked your code using cargo clippy --all --all-features command?

Changes to Core Features:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your core changes, as applicable?
  • Have you successfully ran tests with your changes locally?

@ffuugoo ffuugoo force-pushed the qdrant-edge-python-mvp branch from 0a9bfe4 to 14fed9a Compare September 26, 2025 11:00
Base automatically changed from qdrant-edge-mvp to dev September 29, 2025 13:01
@ffuugoo ffuugoo added this to the Qdrant on Edge milestone Sep 29, 2025
@ffuugoo ffuugoo force-pushed the qdrant-edge-python-mvp branch from 14fed9a to 7bea254 Compare September 29, 2025 14:39
@ffuugoo ffuugoo force-pushed the qdrant-edge-python-mvp branch from e73fd36 to 15ae008 Compare October 1, 2025 10:44
@ffuugoo ffuugoo changed the title WIP: Python bindings for Qdrant on Edge Python bindings for Qdrant on Edge Oct 1, 2025
@ffuugoo ffuugoo requested review from generall and timvisee October 1, 2025 11:00
@ffuugoo ffuugoo marked this pull request as ready for review October 1, 2025 14:48
coderabbitai[bot]

This comment was marked as resolved.

@qdrant qdrant deleted a comment from coderabbitai bot Oct 2, 2025
Copy link
Member

@timvisee timvisee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

I passed the test:

$ python3 ./qdrant-edge.py
[0.5126146078109741, 0.7689219117164612, 0.3417430818080902, 0.1708715409040451]

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only nit here is that this interface seems very different than what we currently offer in your Python client.

I'm curious if that is desired. Ideally we use something similar so that we can reuse parts of our documentation, and don't confuse users.

Thoughts?

match storage_type {
PayloadStorageType::Mmap => (),
PayloadStorageType::InRamMmap => (),
_ => todo!(), // TODO: Ignore RocksDB storage types
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can feature flag it and implement the bare minimum (probably still with unimplemented!()).

Then we'll fully remove it once dropping the RocksDB feature, and don't keep the _ => branch here.


#[pyclass(name = "SearchRequest")]
#[derive(Clone, Debug, Into)]
pub struct PySearchRequest(CoreSearchRequest);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CoreSearchRequest is soon-to-be deprecated structure, in the core it is only used for old search method, which we want to continue gradually removing in 1.16.x

I would avoid making any more dependants on it

@coderabbitai

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

timvisee pushed a commit that referenced this pull request Nov 14, 2025
* Qdrant Edge Python binding 🐍⛓️‍💥

* fixup! Qdrant Edge Python binding 🐍⛓️‍💥

Fix example + cleanup

* review: move QueryEnum + mark search as deprecated

---------

Co-authored-by: generall <andrey@vasnetsov.com>
@coderabbitai coderabbitai bot mentioned this pull request Feb 3, 2026
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants