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.6a1-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.6a1-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.6a1-cp313-cp313-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.6a1-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.6a1-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.6a1-cp312-cp312-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.6a1-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.6a1-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.6a1-cp311-cp311-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.6a1-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.6a1-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.6a1-cp310-cp310-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.6a1-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.6a1-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.6a1-cp39-cp39-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b005a6434bb7c56db27f276b840b6c4822a99ecd5b2c28c02825d8ab5bc59c79
MD5 ddf729bcdf4bc6ed0d7781369a5313a2
BLAKE2b-256 d87ae164143eeb42cf1bdbf46384707d4c2e69f9a512bd8b9be6cdc8266237f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3c7472869b13eab8efc0247f5e926017a146cf83c66f700747f9ba4cb672ac89
MD5 09633b8bae0b5979c1997a21db16368c
BLAKE2b-256 e3a593b6725a9cb1a93ddddbdf089b7224d152263528fb60cc70963caa974be7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 832b29f91fecc547ab58206b18516e476f7d60a285955f17a8db3e0b15c6d204
MD5 45cb711a88c666c5bb6c0d6d9d20ef24
BLAKE2b-256 96cda30474147f52820def77f6440a2e7d562edb54b74c6b9bdc2224eead09ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 67cd14241e92baf68e2bad21c51e93d1bc6bd9a65c3ce180f0c70d3558941651
MD5 87fe7d9fbf2568399c60692665436369
BLAKE2b-256 40017afeb424d589befc83a04a7be7c91d6784a1ef186a7acb644ba3ab4f8cb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f1dd48f927580654acec95f71fbf0991c0f3ad0b15f5742ffe59c99f19d71457
MD5 16000382798e29b49e991bca5fce2d3f
BLAKE2b-256 461c192a46f0e82a761f0b474e356d3b0ba484a777c578a4c6d176b3be795b77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8af64606a8be5bae994b3b2c7c55ac1f58cb97166b032263859428222f9ce423
MD5 1b9c3df23a03b08c29b36064b49fcd92
BLAKE2b-256 199d6b5cc2286f0bcc348aac2b16c4f587f98611fa639a2dd670b0ea693d890c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d6190f410214ed039215a870af555c5fe5127cdc9480179b1d9faadb24059f2
MD5 2e58ef176e5ee1557def6002eca7e8ec
BLAKE2b-256 bc4c957532faf7d44cfa1ffbdcde4c5ce7ddc0fcde902bc3c7115dd85a4716fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fbea0c5af326f62044cfc511162c512022c90f21fd6a702c92f54cd19417d93d
MD5 b66403a595ea1222151baf244786c0d2
BLAKE2b-256 ecbc140803124c17598b1f67ab6353d15f2a304046147ef6d86c82e257b6ecfa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7af31d34c3fbd2e5f850516f055f92d4f852a207ae4f7faacdf28ee5072075b4
MD5 747d749c997a8a598c5afbf0dc962a13
BLAKE2b-256 03d497e3f309bda038fb908443526c697fea26e03e3c11b1040d49b1a84c93c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d9a5ec8aeb033b28962119f9bb40322975df9beeb035c6655e408335cb50b866
MD5 209a07380d4782cb5d860f6f9266b838
BLAKE2b-256 4189702473bcc21b5cc3cf0fa1be499940b646ec941748cd92d90aed1b180e4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ec40e33cbcc7c1ce9787c223055ed4bbf9027dfa068548226a5416cfa6a839a6
MD5 fa7587b01fcb11cf056f6ce1e4bd85de
BLAKE2b-256 93feb50fbf135c20e70e1fea2a3a0de28d0e961c5d6b76ea759453fb62cce3d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4e55e57915b90f01e7d78f93fcbf4e8e55d6c7e6f04b85745294f16ce3833807
MD5 3f9fd0844d32a1d5853c2dbfe3b83d60
BLAKE2b-256 504dec8d652883558575cc44987beb889c57e2685e795141f8975a969ae95fb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b49aaab427e34450b25e13ea408cdafd6ad2cf99c73665259199c05325ed8d71
MD5 496a6e73cd1538e9d87118b94b856232
BLAKE2b-256 afbbb4565878107ebe39e61050c55f4b00c01f44e5027e774d62a7b5fbb3aa97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6829a1f88ae824bf221cfeebd599510eb671a14350665832595746ed094eafae
MD5 2b6f22ada0bf5c289e056a52c914bb11
BLAKE2b-256 ee112005469fff41e48b968ecd927a1105d784921a33222f7086810d590969b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.6a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51b6962637e02f3958b6b76786775a63ca914ffd47c4376f2c433467bb89fb38
MD5 0338000f577d7bad54534992f89f3a03
BLAKE2b-256 438da45b13641d92185f209867b9f03d9c2c3ea3e2ad24c8c72e62f004ac67d8

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