synology-apm-repo-sdk
Offline, read-only Python SDK for the Synology APV/Object-Storage dedup backup repository on-disk format. No network access, no writes to the repository — it only decodes what's already on disk (local filesystem, a mounted S3/Azure object store, or an SMB share) into browsable catalogs, workloads, versions, and restorable files.
Install
uv add synology-apm-repo-sdk # inside a uv project
pip install synology-apm-repo-sdk # any other environment
Full API reference: https://synology-apm.github.io/apm-repo-sdk-python/
Usage
import asyncio
from synology_apm_repo.sdk import Session
async def main() -> None:
async with Session() as session:
for repo in await session.open("/path/to/repository"):
if repo.is_encrypted:
verification = await repo.set_key("<userKeyID>@<base64 userKey>")
if not verification.ok:
print(f"wrong key for {repo}")
continue
for catalog in await repo.catalogs():
for workload in await catalog.workloads():
for version in await catalog.versions(workload):
print(catalog.display_name, workload.display_name, version.display_name)
asyncio.run(main())
Everything the SDK does is async def; Session/Repository (both usable
as async context managers) are the entry point for a normal consumer. See
ARCHITECTURE.md's Repository Layer section for what Repository/
Catalog each represent.
Requirements
Python 3.11+.
License
Apache-2.0.
Release files for synology-apm-repo-sdk 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| synology_apm_repo_sdk-0.2.0.tar.gz | 408.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synology_apm_repo_sdk-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 903.6 kB
Release files / synology_apm_repo_sdk-0.2.0.tar.gz
| Download URL | synology_apm_repo_sdk-0.2.0.tar.gz |
|---|---|
| Size | 408.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b6bc5c1087fd1d39784bfff9560d4784fcaee9285b314509533ada337a03836
|
|
BLAKE2b-256 checksum How to use checksums |
28bd7523d36184015bd68d934148f0b820b5fad428aaa2406389f3925d671af4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / synology_apm_repo_sdk-0.2.0-py3-none-any.whl
| Download URL | synology_apm_repo_sdk-0.2.0-py3-none-any.whl |
|---|---|
| Size | 495.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
55eb68bbf5647ac8fa14d7b6dfbd479756bc8eab0b4220e8ef33e022d4b3d082
|
|
BLAKE2b-256 checksum How to use checksums |
fa6fb16e7cd38bfddea6eeeaed89a5e721f1732545927c0916611e4cc19cef20
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log