--- id: snapshot-restore-py version: "1.0.0" license: Apache License 2.0 license_treatment: permissive maintenance: dormant --- # snapshot-restore-py — Runtime Hooks for AWS Lambda SnapStart - Python License: permissive · Maintenance: dormant · Downloads: 2.7M/mo ## What it is and what it does Snapshot Restore for Python is a lightweight library that lets you hook into AWS Lambda's SnapStart lifecycle by registering code to run before a snapshot is captured and after it is restored. It provides two decorators (`@register_before_snapshot` and `@register_after_restore`) and corresponding function-based registration methods to control initialization and cleanup around snapshot boundaries. The library has no runtime dependencies and is already bundled in Lambda runtime environments, making it a zero-friction addition to SnapStart-enabled functions. The main use case is optimizing Lambda cold starts by deferring expensive initialization (database connections, external API calls, resource setup) until after a snapshot is restored, rather than on every invocation. BeforeSnapshot hooks run in reverse registration order; AfterRestore hooks run in registration order. Hooks must be registered at module level to be recognized; registering them inside the handler or in unimported files will be silently ignored. Use it for: - Initialize database connections or connection pools after snapshot restore to avoid stale connections. - Warm up external API clients or SDKs after restore to ensure fresh authentication and state. - Clean up temporary resources or close file handles before snapshot to prevent state corruption. - Establish logging or monitoring context after restore for accurate request tracing. - Reload configuration or environment-specific settings after restore in multi-environment deployments. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Registers runtime hooks in AWS Lambda SnapStart-enabled Python functions to execute code before snapshots are taken and after snapshots are restored. Yes, if you are using AWS Lambda SnapStart with Python. The library is already pre-installed in Lambda runtimes, so you only need to add it to local development dependencies for testing. It has no external dependencies, a permissive license, and solves a specific optimization problem. Maintenance is dormant but the API is stable and the scope is narrow, so active updates are not critical. ## Install pip install snapshot-restore-py uv add snapshot-restore-py poetry add snapshot-restore-py ## Installing snapshot-restore-py Before you install: Low friction: pure Python wheel with no runtime dependencies. Dormant maintenance status (last commit 2024-11-18, no updates since initial release 2024-11-13), but the library is pre-installed in AWS Lambda runtime environments, so local installation is primarily for development and testing. License in practice: Apache License 2.0 (permissive) allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects. Quickstart: from snapshot_restore_py import register_before_snapshot, register_after_restore @register_before_snapshot def setup(): # initialization code pass @register_after_restore def restore(): # post-restore code pass Requires Python 3.9+. Hooks registered in files not imported at the top level of your Lambda handler will be ignored; ensure all hook imports occur before lambda_handler execution. Verify before relying: - Whether the pre-installed version in Lambda runtime matches the PyPI release version and how version mismatches are handled. - Performance impact of hook registration and execution order on Lambda cold-start times. - Compatibility with Lambda extensions or other SnapStart-related tooling. ## Package facts - License: Apache License 2.0 (permissive) - Python support: supports_current - Install friction: low - Maintenance: dormant - Downloads: 2.7M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags aws lambda snapstart hooks, lambda snapshot restore python, runtime hooks lambda, before snapshot after restore, lambda snapstart decorator, aws lambda initialization hooks, lambda cold start optimization, aws-lambda, snapstart, serverless [View on SkillFed](https://skillfed.io/packages/snapshot-restore-py) · [View on PyPI](https://pypi.org/project/snapshot-restore-py/)