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.0a8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.0a8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.0a8-cp313-cp313-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.0a8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.0a8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.0a8-cp312-cp312-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.0a8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.0a8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.0a8-cp311-cp311-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.0a8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.0a8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.0a8-cp310-cp310-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.0a8-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.0a8-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.0a8-cp39-cp39-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.0a8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bea88f0c17c8e6deed18b3346726f65b22e8b47106b42b4f35620f9a47afe610
MD5 40d9ef9a67daae2e929780896668ea21
BLAKE2b-256 0d776e62bcd0665b6864f182ef56860345e180cbf1bdb98da515f3afa4b13ab7

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f067d5bf04432c1d90927bfadf18bc225fa9389159cf324dcb2d426386abce4c
MD5 0d7d37b489e608b0150c163c78041dff
BLAKE2b-256 93a1fe75d6aa3d36a0b949f8129a7fb474d03e756e4fb08b27c567354b07ba1a

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb3ecda5d904f19eeaaaf8a00b8e0d266c3a57ff5aba3daf12b3721bd44db452
MD5 7c9ef0fb26fde0dde121284cf8967aee
BLAKE2b-256 b02c70469d93d30f84909d83d62fcc4f8cb509005b490eca3408c4fc0d2a1559

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 493e98229ae37092acebceaa61b752ce45ecadb3991fb9b90102a0bf7ca53124
MD5 8afd73e08d4cad288224406f3bdf9cc3
BLAKE2b-256 8779f903551c43efb9a13de4f4471351dcb0f9e230517a585fb104ba89f3d4ce

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2053c355deb2b94615cc8d3b26bd6b421d2a5573ded7dadefdc96d0a6f411b70
MD5 1e7f438182432e8e82789e7b4bc6df64
BLAKE2b-256 3634f52861d3caabf472748c9b9960cc836a277a46241ecc86674175d8cfd57b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 815c565e65c92d82a1f92f897296c773387249e4f659722e6a710958fae1ce5c
MD5 ade13052ef41b7747f564c4533930279
BLAKE2b-256 e93d0681a6ae7f261a99f85a236ae0c11f7408da3afdcec9f95ae1183a579cf0

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8641e67912d61c1532b804c673be4f4dbe7aa9ce63d06a1d09dc2b19f2355eee
MD5 b40ecb72b0a3ab78e97e7964e27f2dca
BLAKE2b-256 3535d7421e414ca6e91e3e89366a25d109549bd7b4bef24d0190d94d13d74387

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a468edc3ca72107adc3f6013fe8872d38cb5e969938644a00add4271dfe141a4
MD5 d28231c46827eb8ff5727b0afa485674
BLAKE2b-256 5c12f066ea103441671d8e3f417d4ed01f80e589d72f0b863b1f43a7c3e77fc6

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d26b7c011a58aca8e94f1fe1870ef82706f70378b22003141c3ea6b0549d2f0b
MD5 3f22c3cd9b84e4aeb945788aa4329f5e
BLAKE2b-256 2a7807fe2f2486391ba69a411344630182416789ad9021f1ae1b6740e725f763

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b0e32700f4bdef24f10b900ee6d70541716e62ff51ff63788c5aaf0ac042b7a
MD5 d8fda4efd9fd948a6694e15fb0711cfe
BLAKE2b-256 b15e68f597ae04045baac8851d9ae5698232659446e995d8a6fe0b97a31bc274

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9b23b730c9d7f74ca8d68456faee4b773ba069837c64cb392c84743e257b786f
MD5 8e0db6c87c83064d351e2a0fcdfbc9ac
BLAKE2b-256 92a96683066dcab42bc8310a868a00195e6de4ab1ed30de8fe644ca487a238db

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 429bc96774dc1d7a117d6a5e26afb7cf022a80b3efa0d0fd9d57e0e787dcc9ef
MD5 89ed7b304986e383c2b8961bd9eb089a
BLAKE2b-256 965a6f41d9212507c26b4a65eafd00daac7efc6b98c5213bbf63eff2606f03a4

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c479df83386e558d10e8ecce9e83de6f387bf509920023ddb70b1d145bdfc0b5
MD5 03000214fdaf30ec0c03ac692ec83120
BLAKE2b-256 109cc2c2e6af8e001e0cb9d3384729d324a7491a7e250079898e5a924db44a1e

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bf0510d656f3bb594599b58f4fd87299e16cc13450c3b0ded36777484aa8839b
MD5 c3ad851e5b115dc17c1ba91d26569355
BLAKE2b-256 bf3b773138e533259d121dfc26db884ae1e2adfac278724c34409235dc18aa4f

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.0a8-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a8-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9b335e07a1a2f80005741afb33e173d80e61acfd7212491a88edeef4a7a416a
MD5 4897146e64301d0e5443e0b1cbcccd74
BLAKE2b-256 ae102fc66a6273dd3aa40183ba0524b56f726ca173d6d16cc7bdd92938825c16

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