Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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.

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.6.0rc1-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.6.0rc1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.2 MB view details)

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

pyenvector-1.6.0rc1-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.6.0rc1-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.6.0rc1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.2 MB view details)

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

pyenvector-1.6.0rc1-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.6.0rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.9 MB view details)

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

pyenvector-1.6.0rc1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.2 MB view details)

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

pyenvector-1.6.0rc1-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.6.0rc1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.9 MB view details)

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

pyenvector-1.6.0rc1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.2 MB view details)

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

pyenvector-1.6.0rc1-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.6.0rc1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (8.9 MB view details)

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

pyenvector-1.6.0rc1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.2 MB view details)

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

pyenvector-1.6.0rc1-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.6.0rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a6aabc1f5b087f61bb79d9ad04d19ff36e4075dc1a36ec2c718954ae8b51be8
MD5 bf8ef426792d7bcbe8fd7dae458c59d8
BLAKE2b-256 4350f844fc2aeffb1611b4e7df27bd7939093abe0e4141f52d799e24ad7bf945

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 051888d7acef57581fbafced741eb035469013443b62781d04f249e103319a80
MD5 8f264574212074238ba56dd9a92ed623
BLAKE2b-256 c069c5f8459510d26baa3f2bfa870d633f8b51ab955b792dd2d65784b1f57c8e

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9496102697b5c388ae57ee948ce4748eae089201a91bc013cf3692a763b6c571
MD5 f5ea53e9f5eef43265bddaf6a5527232
BLAKE2b-256 0cfd5811473aafc01ba8c988a80f646ef4c2c215b5b848d0130c2df98601e098

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 23b284c72f9192910cfcc01fda99dcc73cef0649464699d86d966b1959206550
MD5 443646e15957631ef01d4cf5d35d80aa
BLAKE2b-256 a6ca3eea0d0cb71b0f57e23b1bed6ea3d0de837e609592cd3e74ec9cac70a128

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6d7dec9a0422d8d207deda053ac6de84f56335a59b4a5dee0c9eca29a93513c
MD5 bf229ed4ef61490bb08f76c8425ca282
BLAKE2b-256 9ff181862600a71b0de9786e05581b20bb973de8cd60c78f4a6ca192e5804f8a

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 926a3b5f2835971d8d719973cf03091afefcb9fbd54dc7b5231639406cce6bdc
MD5 99f37ec9e0d505bdd2475e8fda2109e2
BLAKE2b-256 09e41809e849cf86df15e04564de4be1f5be7f1ea3fda8cc6466c49770afb390

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3fc3026f7c2b07abd101cee29230ae8adc9c4cb03f28e2759856cdb07bbe1290
MD5 697b6010886baad865859048d274ac51
BLAKE2b-256 aa79ba589b8f94696c36f11484dbbe16e47315e9b98acf70bde45305c29475e6

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 18f6ec98e672acc2cde00ec1f2b58ccf0162afe52b870374669e8abae9307dc9
MD5 f6c5f01f3d294194529569df1325f79d
BLAKE2b-256 4665f8f8b5b9a851aa72fe03eca7d96f6dd78258b0c752ed5c50328c6b075f78

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9035167f165e858a14ced114c04020ba8ab550d1a1d896aa9c7dab68862c9eca
MD5 facbfbb082ee07aa667b224d7b64a62f
BLAKE2b-256 01355cfca582c33965c62e0ce48e6f971b5c87aa155569f26efbfbdddf10fd6a

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f35f34b2676ff57517ee32360cca597472f9990371943a513d0a934e6d3cf02f
MD5 736a6eca057d9012227367c482178a85
BLAKE2b-256 7f9bd9e0a019f47d2962d141ac53dee52761e28e7b9836253bac71117fbc0ffe

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ca2706f8e717ce7f48762e5eb2f277412a9bbc125f22bdadcddb6072ede5f176
MD5 518e80ead0a90882b6cb95ac1c430db6
BLAKE2b-256 bb76bb235973a891443a2e9e3f8a9678c29e601a943987660ab1908897c0b78c

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e1f2ca3fd43b0bfa7a2faacf9aa779870b29fef4d1ab319242ec694776b58ba
MD5 23617fe0ba8873b9656aa85dd3e8758f
BLAKE2b-256 cb0035f1b2a0badde9ccb20b2a90aac00e49bd8586f6844a7befd4e665bd2f6e

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f449d81ce216961bb114a6f366d396acd840019767860743acb092af6bbf44fd
MD5 52a39ee1b7ee25c264f117fb0b6852a1
BLAKE2b-256 3d2d7fe3483ce2e1f2be86c9e5d6a1a9e0c0e18931d21d967aa19e423d8cce74

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c93f5632ae915166c32f69cd01e96d3b1d786a50ee0af486c8df027d542173ef
MD5 66ef1f074ad457408a60b1d70ecae1a5
BLAKE2b-256 64bf8ca724e758394e39ab36ed9a4eff1ce0dc1b95f406a85b5b18a0913a2f06

See more details on using hashes here.

File details

Details for the file pyenvector-1.6.0rc1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.6.0rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52d1ed4829e399c8bfba7f00e11cc291a5033fa2523f6b795a02ccd91e00cd28
MD5 dcac4443e84687ba4498e45134dbe44e
BLAKE2b-256 93630e9152e5aef07e558c7ed45b8abe45c9f330781b74a7379393921e0f78ee

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 Sentry Error logging StatusPage Status page