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.2a4-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.4.2a4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a4-cp313-cp313-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pyenvector-1.4.2a4-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.4.2a4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a4-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pyenvector-1.4.2a4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a4-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyenvector-1.4.2a4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a4-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyenvector-1.4.2a4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (9.0 MB view details)

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

pyenvector-1.4.2a4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (9.4 MB view details)

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

pyenvector-1.4.2a4-cp39-cp39-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file pyenvector-1.4.2a4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72cff93e160fc8289e4a84eb99e33b82525b4c86d4d8465bc85f745275aecf52
MD5 00daff5a29631ec833e62edf196afa9f
BLAKE2b-256 3202f8fa95e883c2a1522ce5246038ab91e5d60a41b94b33c2cf7ff7832dceb4

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 16cc828ccc9e1bc32b56162cbe2fbce941084821264f1c875402e00b6a7ef9bb
MD5 342a6772c232acb3a45f11071be04cb2
BLAKE2b-256 779c6d48f3347a7fa70b3b8fb9301e11395c05219f4649b38eec822a83195254

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 364c601d2692d898143abf279950390e86c50a3ed996470be6708be29473e02c
MD5 b2a9a7e20056d63d01987b9269953cb3
BLAKE2b-256 5d00efc743d133c635c6a7a09e1da745c5bfd94e5b33e29b449036e1bcc4619e

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 718e553aec02564b038d11e6aa9e22e432de4cf16086c18caae1f2840f5cf857
MD5 5236153513a19ace6a0a900dc3747afa
BLAKE2b-256 8a42625643204ad1824ccb6e0d2753940e1c1a604ca45eb406c0a9cb9ec4e63f

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0024a11c1336b4b9bc92fd5c79a1bbf6166ac511627dbf2aebc9cbf58b385702
MD5 b969107bf1943e1088de884dedb69264
BLAKE2b-256 f73a83eabc84bc703ca96d0651399a7a5065a5b02d7e9cf985654518c792eb10

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc217b230b37d6f5815aa7acbda94455a1c052dbca4229ba62e5a4496fbae15e
MD5 ffb3e47655a94beacdef6da0666f3469
BLAKE2b-256 fc5115cc871e72dff8df2284e5b91997240fce1a1538e2ba10bd7366afaed523

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e503cad4da088ba652cb542b7a8cfe7e3018ff9437c3a36c991b972d85a9a1c0
MD5 8b3736b702c905f98fe78fc24f6747e2
BLAKE2b-256 2336c3b5f8eddfd6c161b458b6f779989e2ecec1a75512fbdf347dd0a45de140

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 db987ba8ded41204c13d399442322076a355ef931046d784a21dd538f951c063
MD5 1f042130a4f6eb8900561841f84a227e
BLAKE2b-256 eac3b46555e5eef77fbc35ffa5ae7c08fb02cce1c325fcd49c7f43eeeda86c15

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d944f88931ccaae446e8af2fba666221fb54c79f1b698c59a95a3e280477463
MD5 b39d12d48fe6873ebdf97ccfb3f91980
BLAKE2b-256 7ebf15c0ba8116b8f7c687ea54a0932afcd74bd83d188acb31f11608358dd939

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c485c1b6a2a510968f5af25b94e54091afc195964568265be075a5c45a013d1
MD5 8c72015bd486296cf3b22ff855552e69
BLAKE2b-256 7c336621df4a2a20c3431643885c263813feb698cedf6e2e2be82935cc88a86c

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3518c8e73d3bed6c12c12848d6bbb8f848e883e34bb555addb658572b8b4d9bf
MD5 0f9fafd452c12575442b284b21988a3f
BLAKE2b-256 60d5d042bb0ddb539ad4bc9e737e21ede0db628a4c6b6e3cc1acfd7c998ef951

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b90368ee50615bf0ab10462012590320ddf826df6440a55b497b5b6edba7b67a
MD5 a032c87cbcb97d0614db48c26850b5e1
BLAKE2b-256 fc4b957f35996a489afd3d167db92577605dc0c10eaca67cb128c1444a7af311

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a6404fb692a4b57585961dc0ab1089efda2dc232e6f68c16d5ed194a9b30730
MD5 9dba7a6ed345d1feb5a237512279504c
BLAKE2b-256 b041619bf3d3dc037bf54c0fadd006df49637168d51b72f39ae5677ad99d1ff5

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0d5ea893c03dbcfd8ddeb5af6eed31e56eae80c2f148758ebe8b84e8b5138fb6
MD5 0d83430ee035edc3ab19dd2d4658dae1
BLAKE2b-256 fdd8e5b50f174d75da539e16d4feb4b7986a2eb58e8e3dbcb19b439db3a8e000

See more details on using hashes here.

File details

Details for the file pyenvector-1.4.2a4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyenvector-1.4.2a4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4ce3515c82b7bb1257218eac270b8f0a069398590435019094658435eb279b02
MD5 fc8a2aef374783b89cd43543545e6e9f
BLAKE2b-256 fdc01647a2776bf5466d1df68e07bd2b80766827992712d60656ce89d59f4238

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