{"library":"py-ed25519-zebra-bindings","title":"Py-ed25519-zebra-bindings","description":"Python bindings for the `ed25519-zebra` Rust crate, providing high-performance cryptographic operations for Ed25519 digital signatures. It's currently at version 1.3.0 and has a moderate release cadence, driven by updates to the underlying Rust dependencies and Python version support, ensuring compatibility and performance.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install py-ed25519-zebra-bindings"],"cli":null},"imports":["from ed25519_zebra import generate_keypair","from ed25519_zebra import sign","from ed25519_zebra import verify","from ed25519_zebra import PublicKey","from ed25519_zebra import SecretKey","from ed25519_zebra import ed_public_from_secret"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from ed25519_zebra import generate_keypair, sign, verify, PublicKey, SecretKey, ed_public_from_secret\n\n# Generate a new keypair\nsecret_key, public_key = generate_keypair()\nprint(f\"Secret Key: {secret_key.to_bytes().hex()}\")\nprint(f\"Public Key: {public_key.to_bytes().hex()}\")\n\n# Message to sign (must be bytes)\nmessage = b\"This is a test message to be signed.\"\n\n# Sign the message\nsignature = sign(secret_key, message)\nprint(f\"Signature: {signature.to_bytes().hex()}\")\n\n# Verify the signature\nis_valid = verify(public_key, signature, message)\nprint(f\"Signature valid: {is_valid}\")\n\n# Example of converting bytes to key objects\npublic_key_bytes = public_key.to_bytes()\nsecret_key_bytes = secret_key.to_bytes()\n\nreconstructed_public_key = PublicKey.from_bytes(public_key_bytes)\nreconstructed_secret_key = SecretKey.from_bytes(secret_key_bytes)\n\nprint(f\"Reconstructed Public Key Matches: {reconstructed_public_key == public_key}\")\nprint(f\"Reconstructed Secret Key Matches: {reconstructed_secret_key == secret_key}\")\n\n# Derived public key from secret (available from v1.1.0+)\nderived_public_key = ed_public_from_secret(secret_key)\nprint(f\"Derived Public Key from Secret Matches: {derived_public_key == public_key}\")","lang":"python","description":"This example demonstrates how to generate an Ed25519 keypair, sign a message with the secret key, and then verify the signature using the public key. It also shows how to convert keys to and from byte representations and derive the public key from a secret key.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"1.3.0","pypi_latest":"1.3.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.5,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"18.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"20.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.6,"import_time_s":null,"mem_mb":null,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"12.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.4,"import_time_s":null,"mem_mb":null,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"12.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.4,"import_time_s":null,"mem_mb":null,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"18.4M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"py-ed25519-zebra-bindings","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.8,"import_time_s":null,"mem_mb":null,"disk_size":"18M"}]}}