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

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

pyenvector-1.4.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.3-cp313-cp313-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.3-cp312-cp312-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.3-cp311-cp311-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.3-cp310-cp310-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.1 MB view details)

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

pyenvector-1.4.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.5 MB view details)

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

pyenvector-1.4.3-cp39-cp39-macosx_11_0_arm64.whl (7.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 215423a3145148322bcae8cc98e39f69be5556581aaf08f6b695eaeea274e07d
MD5 edb5f3526983c952c7a5bdac580ff264
BLAKE2b-256 c439e37ad7999b960b1ea027ddf6bf75184a366cc7edf6c4abf8ee9dea39f190

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db17d810dcf07796bc37d338137da8ace03a899424cddb05114aee314970d2af
MD5 ee5197059f24df095121fa816f5ddfb1
BLAKE2b-256 0e5393924f5bea1a42a3a841662798805eb081f072e20e3e2de20c8fb4b9dbb4

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e2915c2d1afd7530ac40bbe2d6bb9bc6495e41e8225bc46aba00ca31fa07143
MD5 a7c3bd41e001a010ac4474a217fa45db
BLAKE2b-256 89c32c90cc13f631485fc1a1fc410551fa59cfb028acb769f08accd608be854f

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e8ec665c1a0f6b84fe0c3664a0df8bed31ca36dcb782b209c6698731173d6ac
MD5 397502e8d12056abd91f5381522ec26b
BLAKE2b-256 d635d655d68e650c84876ca25ded52c2093eabe33d115ccc6cce32117b32a57b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f72da072301ad0236e3bd0aa28468386587471229ff42386edad782d0bf0e952
MD5 d8144c4e64844250fc6da1a945665993
BLAKE2b-256 971ccc497fb8954ec6cc5612dc4833ec71bf0baed703c33af4013d001510909d

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7ae6ca3a2f3ae109597214cd01110dfe04f1fd8f3c67fd77305365e2878fbc3
MD5 b821a0d37db195b2914fd6cec4cbdacf
BLAKE2b-256 3115d2ebca23e67738c05037a9a0aeb2f0de72ccf16bf4f50204a1c269a3b65a

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc31b1f8ed74379d3f0a9826ae2991d01b4a1b14512a09fb59a12ca8343bc003
MD5 b564e2f254f79683f4113c9358e0c60a
BLAKE2b-256 4a3f7ce7ea9c5109c8abea5ab959f2dbac4b1a8e379b16f1ce397080e3500c57

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d9ac1be4923ef7952cfa07d8c8d03913fbf4f7e34d47cd350746c8bce7c74828
MD5 7914c814d8093df6075c898523316d61
BLAKE2b-256 4683bbc1ff37d0bfe6e5ea3a1e30195810fa677a586936eb360796ce6e48251b

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 52c712e593055e2f370a25e9466f90c8c34e390f5fad385513a65d5c359137fb
MD5 88f68eb228b9a153a84af4d317396b8e
BLAKE2b-256 22c2bb2df5edb16e9693672108587af97f5d21d58a5bd482d7cdab8123808c49

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 918c1c31711c773aa131fdbd0bc5b393eb6be94224a67bb0f688e7ec3aa73658
MD5 69fe450d571a5c8c33e1d723a63ea4d9
BLAKE2b-256 2d636f12fcc8a80e1ecbb693d9fce261f797bf07a63397d397d1758c1614624f

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2ff51daf1110d7b17756a084280b2afc4a69aa0dc5287e295b5dd1e224131345
MD5 5edc37e56e26276e25f6e368912306a6
BLAKE2b-256 b2a362165bd25a3d6e8836474c9102971c3ea781185cd94cabc3854c653106ef

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d5d6fa0d1e6b143ead561e2fe8da07046327db91f5985cbbf7908e59bc3cf40c
MD5 f30c6d1ced4c76a30b2a6e35eaefcd28
BLAKE2b-256 92481b92eb38a0e0812ff5f7ba77fee9f51b096d373098ba43a22c24519582e5

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49e95528b50c9f16fb6503bf92eca105ce393c2062393271d211a16889f51a8f
MD5 cc68a3a289ad1d24a12396d93fe4e953
BLAKE2b-256 5a3833e1dad0095ffdfe55fc89f540da9ab123ed726e05cfa2601b3eb8c3da1c

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a44f5d83f55e8a379d02eb06de0452c9a1e35191ea12e465335b8559931ff7fb
MD5 2817c7943d8b11877ecec9564d80cb01
BLAKE2b-256 655be1b5322f9ed1856b4d97a4d2ed9ed7e8c036cab2a6cc396cf95fc9b21a2d

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5713ad03ffb47df423a85632eb00006ac4cb92526be172936029db8104decd4
MD5 98a50617a59b30db5134c7a41d79a603
BLAKE2b-256 c5fb05ea02ea7f2e1a421747615be8be60c97910dff4d402fe7de780debfb069

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