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

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

pyenvector-1.4.0a9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.0a9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.0a9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

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

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.0a9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.0a9-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

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

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.0a9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.0a9-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

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

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.0a9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (32.9 MB view details)

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

pyenvector-1.4.0a9-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

pyenvector-1.4.0a9-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.0a9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7d3b40f23b363fe7fad4b976f4e1486af468983d2923fd124b4f4c099c568e4a
MD5 e5216a669ff33cf74725ba8552400e4f
BLAKE2b-256 d2a3dc0a57317a905d069d8efb7b53b87eefc8ecf1e21962a3ad310a1c888041

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3f2722f8ef0f7d1075ca9c86ad9a83dd14b9b30af553c2743d2d8c9409382eb9
MD5 42301d38781702b5905b7779218df285
BLAKE2b-256 1843b23d9b69c890c0211c9389570eb5e53d029e4adabd4931002afc09cb05b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06f8f77e5a0b338120573af642eac2938abc01cb6c0bfe07646ce48c0dbcaac5
MD5 858cce884153aa7dcea7f0c1d6b9623a
BLAKE2b-256 4d19a5daf48fd0c7dd49beee5a53a802f384291bd6e1617721512b2a85200dbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b5484b084c87464592ddc0142d41fda0904a951fc454109f981d14f79132a01
MD5 5a458672d6367895fc9f57ad043ad87b
BLAKE2b-256 9f5e2391e82b5c9bf3960b3007bbd5f241145647abbc95923127091f6aefc898

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6a7f525e3996b3ab5e22dbef1ced28f8dc07d24f917e11d645a914cfebfb0fc3
MD5 3f6fb1cba47b3a8306e504ba73dfd8ed
BLAKE2b-256 f6f1fdb7e9aad27e1333e4c166d5f5719f289792b2ba33cef0e3b3ebcbbedf7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d942b24141e63674e77d5bcb6d32d8b39a3232310447c73a5d9ab963ba7b9358
MD5 b0f0a90fbae65ea25aa748ce42134979
BLAKE2b-256 7a136067e52a18cf858f8bf26c669cc30d76d478ed6ae66dd79444a28ebf3d53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8743607b4f1f0f3f7e7c2dae4e4b81e753958da0550c0511e3d4b288710216d5
MD5 43044f1d8a56d64f6b71c0ca15efc92e
BLAKE2b-256 aff9b6a20a8ee60335d0b407cc01169765f407715a4dd4ff41d3dcba39fc03e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 040aa08cf1a1b6fe7fdc79669e61ba128208f8336bb2affdcd5df9233365ddbe
MD5 435ffa25ab59570cba59eb3e75ab059b
BLAKE2b-256 1b4567266a0959be495484f9a42e231b38f590e7ada73dfb0aa90bc92af98f1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5d03fa7f94a4bb4d4fe1a645fec0ef43cf22256e453c922b8b0c84c88283cbf
MD5 27ff0aca0fa4a8476bdbe56719e93d66
BLAKE2b-256 93f488138e7535a5bea3b78bda1fc676db62f20d5f238ab381b6945c4b9c52d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d7dbd3ddf4a2d209bf3b71f7098d2d5c3cd38f79f55ace4213cee42a659a6643
MD5 9ae260ecf303cc8d3f65c8911f3a94f9
BLAKE2b-256 680250d4c8a3fd764be3ad2dfbd86cb8a73971dc8377043d4cef13d27a1da548

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1cc39afcf0c1a8d2584005f8f502073c3cf1fc10cbf78dbdabbced69e0836147
MD5 c3936608fcdc296487ba61bcab916fd1
BLAKE2b-256 2c5ced6f939389fe90eb3dc0df785233d6789ce19e1a699ee37636d0eadab27c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71b62d33b88d69399d42fccbde38eba1766fcb41baefc83ca73fe993af093903
MD5 fa71c556c361db4576a1adc2fe73714e
BLAKE2b-256 93e5849526023211cefa2c4e117a84ab97beaddbe09113b357ad0aa9d89548c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 041627f234b681cb03eaa6fdca5eb274b5996885e70049143a27d166c112e151
MD5 52fbe89cbcbc851717c9491f80711bc8
BLAKE2b-256 c68a807178daf5e5dea931f34550dfba62b6699f18d3d35930ce18a2d4f65c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0ae0789cc5af1c9fb5abb8d81b0211a7db5eecfb4c1dc439c699527ceeb837eb
MD5 8c77289a3c6b3833fa209cac93f48d85
BLAKE2b-256 3ae34e538d1ee9b820ad5a18adbbf65188a9cdf059120db68e85ccd59e33aa14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.0a9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 79b49e8d504a0db2053d63803177eae3198d77f305459ebf0a636f24ecd086ef
MD5 1ba4f4d778216c5788dc09fa8de83b88
BLAKE2b-256 97187486b58d9e8446dddac012e44e1a9ea7f10d2abf38592e3691d0de59009a

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