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

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.5a1-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.5a1-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.5a1-cp312-cp312-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.5a1-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.5a1-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.5a1-cp311-cp311-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.5a1-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.5a1-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.5a1-cp310-cp310-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.5a1-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.5a1-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.5a1-cp39-cp39-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e46cf6a5e26a1af2b5bbeb5f597ff6588460357dd1fb8c88a6ed94d52345c9ed
MD5 972b8771d7cb1bda9bcc001292965930
BLAKE2b-256 2e915a81bd979910bf60b6d9630c06d6aaf6cc0ea488e10bd281ea6db08037cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d13567deb9cf8cb6573c83ac0ae14aeaa05dc9f0ac066a562fac153f2bdcaa5b
MD5 ee60e259e2a1ba65a93415c68d9a3f49
BLAKE2b-256 da416cf39911baeffc57ad43bc1d118a013b3bd04076f70d0221a68f7e5b18f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3dd415b63af5ffb717a76698696b91e37a158acc5c67443e4963fcd784f28d70
MD5 067ec2387ea692dffa0c52d72bc56546
BLAKE2b-256 7bbacae4a0e1e2f9f02dc00841179ab873cf112c64f8ccdbc1ff7bcbe7a7ebe4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27af7f99f03498e598a4f6c530f15a26efa37b20f722eb50953f7d785b111f4b
MD5 8945baaa609a08d6872048a443d64715
BLAKE2b-256 9be9b3835f1bc99945d7a398224415673e2581fd9895344ce0a2d6517c01657c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d5321c47187106f17bb79578fcde0f4a936332be47450b08ac9c254155bdbd8b
MD5 0a071c8aac9462905abb6118148a00b3
BLAKE2b-256 ca7bfe7c4085690f652193a834c12114aabbbf792293844730298a234b3dd8f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b3de0aedbd78cabccd79ba0b4b899a7c77da14fe8ef1a672bc3370684d7bcfb
MD5 03981ec7079cad32972d2f9adf385392
BLAKE2b-256 296bf710f9bcad25837623efdfd9b2d6e556a90d744218a3e47ced7d78044e4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d2e595563b6541904f21f7ca689293c6d66b116981ef9c9c4a536d74669a542a
MD5 bddcc29a8e9acf978b608704967a4593
BLAKE2b-256 aea75a8a62373a26035e5295228f7929739f34c705d75d792bf92790b695596d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 940d4dc4fe8004e451a877cf342e14b2f6fa55f837845578ac241710e0ac23c4
MD5 92198192de84d5b7d70368e1f062b038
BLAKE2b-256 2fcb4691cd9d6bf897326c90064ed40d150e5f57fbc5eff11a574fdfc6b40ae3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 426105f019bf86566e784f33008b0ab542a71a90b779640f84cb99d47e29253d
MD5 85724f1a05ed6d33dee0e857b801aaef
BLAKE2b-256 0b195a28fd2da80d1f969b7ed45bb1dd0008efa5812a6b9b9a72fe6e4cda7687

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db4a167e41bc35eec06100e4aaf6876292ff4c0574b5ebba19c6c1d3fb2cbddb
MD5 6a6350bed1fddf5f493ef350b70a1d1a
BLAKE2b-256 1adeb8e562edef197a58b433e11a59275285133489df03feecf3e6da74ffc164

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8b0659d14bb92bf347cbca51ff1b9a30eaffe3a277079fefb29578a17b476b4f
MD5 2b7cd00e6a01cc5f59f15037d65ade1a
BLAKE2b-256 68c22832960cf889985e52af716800e4d6d734d90860714b81f21e98b5e63017

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4686ce85e7414c3d635c8295903c5c89d6a1328ce5c092a29b8447c476eb28f
MD5 72824916c67371d5a9bc49da12b3730e
BLAKE2b-256 717c3d9ea18cf901218ca924c60ea07aa7796e227500c09a8044e394862c588e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1e3d2a3a2980b1cd1e41bc2925acc92e27195149e1647f049cae479a171bad82
MD5 ece1d72e11a3f3a1a6bf81e2b20b4d31
BLAKE2b-256 42542a914ac784eb9b296551d16c1f643469d26b5bf5727c5ef1f107d7f8fda6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dff9dd1834e743690c24ef5a591a83d07c9228ec98be19c4f9122ad09efce187
MD5 33fe113fff12e15948209d12a5166d32
BLAKE2b-256 8162f0a596c068ce2543ca6ed2bdf78d5becca295d3921618622ad232594e0ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyenvector-1.4.5a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00817c541027b48132c4c17b08da870b43c9d15702193461c8fefe228be9c382
MD5 cc855427fdad9bba7f2bcb99547a719b
BLAKE2b-256 745f49b676e4ec243d1c7184e5c35774bef6d1c6cf76dcd4a184e5ea91120ce7

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