Storage Backends
Storage Backends
Section titled “Storage Backends”vcpkg-harbor supports multiple storage backends through a plugin architecture.
Available Backends
Section titled “Available Backends”MinIO (Default)
Section titled “MinIO (Default)”MinIO is an S3-compatible object storage server. It’s the default backend and works great for on-premises deployments.
VCPKG_STORAGE_TYPE=minioVCPKG_MINIO_ENDPOINT=localhost:9000VCPKG_MINIO_ACCESS_KEY=minioadminVCPKG_MINIO_SECRET_KEY=minioadminVCPKG_MINIO_BUCKET=vcpkg-harborFilesystem
Section titled “Filesystem”Store packages directly on the local filesystem. Best for development and testing.
VCPKG_STORAGE_TYPE=filesystemVCPKG_STORAGE_PATH=/var/lib/vcpkg-harbor/cacheWarning: Network Storage When using filesystem storage with NFS or other network filesystems, ensure proper locking is configured to avoid corruption.
AWS S3
Section titled “AWS S3”Native AWS S3 support for scalable cloud storage.
VCPKG_STORAGE_TYPE=s3VCPKG_S3_BUCKET=my-vcpkg-cacheVCPKG_S3_REGION=us-west-2VCPKG_S3_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLEVCPKG_S3_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYFor IAM role-based authentication (recommended in AWS):
VCPKG_STORAGE_TYPE=s3VCPKG_S3_BUCKET=my-vcpkg-cacheVCPKG_S3_REGION=us-west-2# Leave credentials empty to use IAM roleAzure Blob Storage
Section titled “Azure Blob Storage”Azure Blob storage for Microsoft Azure deployments.
VCPKG_STORAGE_TYPE=azureVCPKG_AZURE_CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=..."VCPKG_AZURE_CONTAINER=vcpkg-harborOr with account key:
VCPKG_STORAGE_TYPE=azureVCPKG_AZURE_ACCOUNT_NAME=myaccountVCPKG_AZURE_ACCOUNT_KEY=yourkeyVCPKG_AZURE_CONTAINER=vcpkg-harborGoogle Cloud Storage
Section titled “Google Cloud Storage”GCS for Google Cloud Platform deployments.
VCPKG_STORAGE_TYPE=gcsVCPKG_GCS_BUCKET=my-vcpkg-cacheVCPKG_GCS_PROJECT=my-gcp-projectVCPKG_GCS_CREDENTIALS_FILE=/path/to/service-account.jsonFor workload identity (recommended in GKE):
VCPKG_STORAGE_TYPE=gcsVCPKG_GCS_BUCKET=my-vcpkg-cacheVCPKG_GCS_PROJECT=my-gcp-project# Leave credentials file empty to use workload identityBackend Selection Guide
Section titled “Backend Selection Guide”| Use Case | Recommended Backend |
|---|---|
| Local development | Filesystem |
| On-premises | MinIO |
| AWS deployment | S3 |
| Azure deployment | Azure Blob |
| GCP deployment | GCS |
| Hybrid/multi-cloud | MinIO (self-hosted) |
Performance Considerations
Section titled “Performance Considerations”Caching
Section titled “Caching”All backends stream data directly without buffering entire packages in memory. This allows handling large packages efficiently.
Concurrency
Section titled “Concurrency”The async architecture supports many concurrent connections. Tune VCPKG_SERVER_WORKERS based on your workload.
Network
Section titled “Network”For cloud storage backends, deploy vcpkg-harbor in the same region as your storage to minimize latency.
Creating Custom Backends
Section titled “Creating Custom Backends”vcpkg-harbor uses entry points for backend discovery. To create a custom backend:
- Implement the
StorageBackendprotocol - Register via
pyproject.tomlentry points
See Architecture for details.