Skip to main content

Python SDK for enVector: encrypted vector search powered by homomorphic encryption

Project description

pyenvector — enVector Python SDK

Python SDK for enVector — encrypted vector search powered by fully homomorphic encryption (FHE).

Your vectors and similarity scores stay encrypted during the entire computation. The server never sees plaintext data.

Install

pip install pyenvector

Quick Start

import numpy as np
import pyenvector as ev

# Connect and load keys
ev.init(host="localhost", port=50050, key_path="./keys", key_id="my_key")

# Create an index
index = ev.create_index("my_index", dim=512)

# Insert vectors
vectors = np.random.randn(100, 512).astype(np.float32)
vectors /= np.linalg.norm(vectors, axis=1, keepdims=True)
metadata = [f"item_{i}" for i in range(100)]

index.insert(vectors, metadata=metadata)

# Search (encrypted end-to-end)
result = index.search(vectors[0], top_k=5, output_fields=["metadata"])
print(result)

# Clean up
ev.drop_index("my_index")
# ev.delete_key("my_key")  # optional: remove keys from server

Key Features

  • End-to-end encryption — vectors are encrypted on the client. Search runs on ciphertext via FHE. Scores are decrypted only on the client.
  • Familiar APIcreate_index, insert, search, drop_index. Works like Milvus or Pinecone.
  • Key management CLI — generate, seal, and upload HE keys to AWS S3 or GCP Cloud Storage.
  • Cloud-ready — deploy the enVector server on GKE, EKS, or on-prem.

Documentation

  • enVector Docs — deployment, architecture, API reference
  • GitHub — source, examples, issues

License

Proprietary. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyenvector-1.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyenvector-1.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyenvector-1.4.6-cp313-cp313-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyenvector-1.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyenvector-1.4.6-cp312-cp312-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyenvector-1.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyenvector-1.4.6-cp311-cp311-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyenvector-1.4.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyenvector-1.4.6-cp310-cp310-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pyenvector-1.4.6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

pyenvector-1.4.6-cp39-cp39-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 324ebcd59a2951263ea190f7325b2451ebc5c83275167a5744eaef3528223ef7
MD5 f998c4db8950bf1f143f33ea5f28697d
BLAKE2b-256 d1d9c3e0c094e9dd83dfb71310e2f148faa6b07e7f2cd003b55c11465d478fe5

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 045b614a4fa08e7645cd7af661bd0cc2728684ea42dd224e8c2191a215b74040
MD5 7146b0b1d8c1b104871a866f446f6e6d
BLAKE2b-256 db8fb101c954e626324a648571c01f06bdc14d0e6d720a3278f252583bac265a

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f487f37d7a24916b4ea55c9aa1daf3bf9721ad9fe58dad37a9450eab701f069d
MD5 1e851224721c7a382a23dfbe2fb4a6e7
BLAKE2b-256 734105244c63c73051907e66e8a367b3f3d26ed9bfc92af18a36db0a2eb5c6dd

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e355f689794c0dc3dadfd692b8158933be44a27d87d60b44824c049534a6990
MD5 2c264f73fdf4315c8df0a0b8e909d725
BLAKE2b-256 46d6f8d3006ade885955d0c32e223a8abf8fe337cedd62e547afa23fbe451ce2

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 617e069fc795a62f072296578d1e9ee70f9d73befd8f219475a273aaf5c9d752
MD5 cf323471f6c2595b4dd4aa810c7f2b55
BLAKE2b-256 e7b4f82755a0d392b2852578904038b66d5bf72c37e489ac433b31a9a5fa5d9b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e50f85a5cedbf03fd54e8ab9239ba989a630a01da43389f5ab6cc573a8a9f04
MD5 fd31297ad510c6e7d7cfb6b0e6448cb7
BLAKE2b-256 d9130bcb571f91ca7d8ee48e327569dbc5ac037cc338d11113c0be439ee8a9e5

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd79dbf70fcfc9f7c7be68ed53bbc5e18e47db86cf62d09f0e17fafa4cee007c
MD5 ee35eb0a4d8ff64fb4dda6c0199d7ace
BLAKE2b-256 14d7c3cba3d67fb3c84e73db66d95e971b56dd38692f750aa7bb334f2ccdf9c9

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 905106b6195deae415557ba44d5d594343d65154861962a19fb903bab500853b
MD5 f59a56b009f116554f707b16e878e30e
BLAKE2b-256 45fdabf5ebc153b56c02dc36800b717493a46e00d6703efe2a335d8350f35d70

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4609af3c63e9a2c078674779c05020757f01c5b38d5837b2688a9c84bda50f3
MD5 96760abf3c31ab21e59e1b1e2b843633
BLAKE2b-256 191ee986869bce944bb26f19ba199690bff1970af8b5b7cb8a4bdc1660527e85

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76ad80b0125c5add8d88435ff57592f8926a009fa0ad4d142f58884438f0ed9c
MD5 5ff3d365305f0c95409b30ac2388a40a
BLAKE2b-256 de88c78c60987ecbf6b80841b1aaa5fb224b2401e45eadb173774a9a08ff80d6

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 17d96d1756ac8ec8356ef9079193062d7eb6f392f0c3502e9b19ee3c3cb14af1
MD5 20be74b9d4b048f72152db042cbc492c
BLAKE2b-256 651cbc23f366bdfda057292bc86693a01c0775612623e8135b629451fc8318c3

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5c514708106adc35edf93008114eb12af86e7de68f047fb27bc34de1c81593d
MD5 bde81e29598626bc2a3f6195beeeee17
BLAKE2b-256 3b199ed4f1e8f751867db670ca4987b861a2f100d8537e93e0591f3f11aa1425

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1fa772f88c715adba038d7997648e988aa3510d548113c8a1d3cf02ed0b0a9d9
MD5 30b729d83639bfd91b4f209e58216b11
BLAKE2b-256 f6d2570af2825b513641f7f11cb5a07a1e27a9bd189f47d3c7453f957360c6d1

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a0981b1ca7211ba4cba7bd0f80cdd7f9c14b7e63a3a2d324287d50be52e9b3e1
MD5 08bdb3affd45a7beb03c66f7209f7526
BLAKE2b-256 a2b75bc90e2cf494bebec5d52dc6b3a92fb312f719d235d2180732f0a5f23b0b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87504d6eb8e1d8097debe935ce3cc98b8f890247f6aa3eb0b041c558d1476ffe
MD5 5118a3cfb4df764591fe842c0175122c
BLAKE2b-256 6c1c4b38f33e3a01f1e2eec2ec52b798d3934d58c8228e3b67d57a6d5d961480

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page