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.7a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.7 MB view details)

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

pyenvector-1.4.7a3-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.7a3-cp313-cp313-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.7a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.7 MB view details)

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

pyenvector-1.4.7a3-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.7a3-cp312-cp312-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.7a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.7 MB view details)

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

pyenvector-1.4.7a3-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.7a3-cp311-cp311-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.7a3-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.7a3-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.7a3-cp310-cp310-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.7a3-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.7a3-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.7a3-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.7a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b25ea4c1df759297cae7bd172b642013628f2ee4fcdd2981d155e35af63f6f08
MD5 64e9dfc5d5bb2b67f896aade7d43da9b
BLAKE2b-256 5b8a66e2dea7fb7b16c0bf4df965ce78620f9253bf9f8f0333408e71722b90ee

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5e092c2728710ecec72debc33a09b9682a19af78c596e6c5b587a131a99762a6
MD5 599f290449d7e9ad58b9ae1fa04a860f
BLAKE2b-256 aaec3294a938f69536a64c0cfe6ab666060d828c721605300e1b4f2bd18c699f

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 128bc1e7e0050457198eac867b34c37c1fc1b3862b7def2271ede0fb53749de1
MD5 34f96e0b8dc40db2fd4487f2513c0ceb
BLAKE2b-256 5888f92cff7849825afce5b80f27fcc875fd67db5bb041966da4276c7f3fc03b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 57a5921992dc60e6c393021991348c3b4088ade8f1a2345d84a9cee9e74cd60a
MD5 a1f5f739ec4d575326dccf690aa0d9ea
BLAKE2b-256 2ebf3f1516ea7ade77bd9c85dd040cf07b63bf268386988c49cf71eb984dca13

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bfe5c0bb5b64d3b125bb2ed870706ae981d2b7fcd9dc12c5e1b19da8550a8b59
MD5 9f2e8a1807bfb9944a60cb6ce0d564d1
BLAKE2b-256 7ea4c4cc09de461ff90dc5cbcdf123a0c0bcd83beebb864be1b79909007a3869

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 411a7f09b3485ac9ada00c9acb04aa615ca177e6d7271288e73c0d123f9fce3a
MD5 e9b7c106ff7100abdb3fa8ecf9a430a4
BLAKE2b-256 1dd5ba462a7c3584ce3e3798a45a594c4068ab80f9a0db4fc933117ca6f17537

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e7f63cc2d7dbed5f6b20da0f90f4d247898e3d54141a664b94ad1afccd71b72
MD5 c5e137a571c8752058a90330e3ec158d
BLAKE2b-256 d70a814723ff27d61a3b10f9c282d1c005edda4d1f9fda3fe6fcc08dc5d72648

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8ae8e80cc466f36ec6e2a571ab2be20d84fef68078db3862982fceb7e406dd0c
MD5 38328261ae14b954a72bdea20c58e548
BLAKE2b-256 d09e62d66961271eec8808a78a775a13ad2ba6e1ddb6947ce284768380b8f6a9

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd583b76dabff4d39fb5c1f8cd5094d92168dedd746a9adb90788f2946682b49
MD5 2ab63f8c9d62fda1f6efb32095844059
BLAKE2b-256 c6a07d202bb72e5de424545533407f3d1b881db88f1fcf24932ed714d0b131db

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8df3ea1ad142e679972781f54576bf8685d762313a673837d3d14028473797f2
MD5 ec67f67e429f0e4e900e586a57b96b5c
BLAKE2b-256 4e5e9c856dcfef65613d82a19892e3edacd6c769e3cfe0799be82e4241a2b8bd

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e90f5ebd838a3d79467ec336a3a93fa7689229bf39e2b2401e662f0fb8541b0b
MD5 ce0bdcea973f05a02dc83770f910dd85
BLAKE2b-256 e7b3e8d9d632397b59be6afe66e117b0b230ca34855e7ffa3e2a10e390ee7f7b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 572ae1386f7c87a4e14265909b2f1a96e9ec4cb0eaf5ebfbada6b73ab679afac
MD5 68e492c4b6439a6bd3b419f9e95ee83a
BLAKE2b-256 5328cb3946adbb2ebc651d22e802c31f47b23acb9264ed422c030bb2763ad71f

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4dd221fbf0b06c1c78c4ee22100d5b1d4e983c4b7bf67f58d00edd5d3e0031f0
MD5 4aa1fcb99ffd6205a30458c798e4df23
BLAKE2b-256 c207a2d7654e8c263c6ec74bcdcc96a143c99f25f799c95bea0f2f76ba4962cd

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 369e309839d6bcca362bb6204250f156b38dc6552a511052ec1036861304498e
MD5 6b131b09dd14af4b280688aaa1c964b6
BLAKE2b-256 e11f0899f36ca97dd3b78b15f24eb674f2005a74b50ec825c51eca6e0337f99a

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.7a3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.7a3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dcffcdd054362d54e8a54b29faf91173aee53253c91b5bca99975ab73da5ea43
MD5 e410231cf75c0316b467e4fd4db2c334
BLAKE2b-256 26c372e2da24779794973b946599b939c7b2500d0e68f21031c218d073c0c871

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