Cloud-Infrastruktur-Bindings für AWS, DigitalOcean, Cloudflare und Google Cloud Platform — direkt in Lyx implementiert, ohne externe SDKs. Die Units bauen auf std.net.https und std.net.tls auf; alle HTTP-Anfragen werden über den eingebauten TLS-Stack abgewickelt. Authentifizierung erfolgt über AWS Signature Version 4 (SigV4), Bearer-Token (DO/CF), Cloudflare API-Token oder JWT RS256 / Application Default Credentials (GCP).
Einsatzbereiche: serverseitige Lyx-Anwendungen, Build-Pipelines, Deployment-Tools, Infrastruktur-Automation, Edge-Computing.
→ Standard Library · std.net · std.crypto
| Unit | Import | Beschreibung |
|---|---|---|
| std.cloud.aws | import std.cloud.s3; | AWS-Dienste: S3, EC2, DynamoDB, Lambda, IAM, SQS, SNS, CloudWatch, Secrets Manager — 9 Service-Units + 4 interne Schichten |
| std.cloud.do | import std.cloud.do.droplets; | DigitalOcean API: Droplets, Volumes, Spaces, Kubernetes, Datenbanken, Networking, Registry, Functions — 13 Units |
| std.cloud.cf | import std.cloud.cf.dns; | Cloudflare API v4: Zones, DNS, Workers, KV, R2, D1, WAF, Cache, Pages, Tunnel, Email, Analytics — 16 Units |
| std.cloud.gcp | import std.cloud.gcp.storage; | Google Cloud Platform: GCS, GCE, Firestore, Pub/Sub, Cloud Functions, Cloud Run, Logging, Monitoring, Secret Manager, IAM — 11 Units |
┌─────────────────────────────────────────────────────────────────┐
│ AWS Service-Units │
│ s3 · ec2 · dynamodb · lambda · iam · sqs · sns · cloudwatch │
│ secrets │
├─────────────────────────────────────────────────────────────────┤
│ Interne AWS-Schichten │
│ aws/core (Credentials, Endpoints) │
│ aws/sigv4 (Signatur) aws/transport (HTTP+Retry) │
│ aws/xml (XML-Parser + Query-Builder) │
├─────────────────────────────────────────────────────────────────┤
│ DigitalOcean Units │
│ droplets · volumes · spaces · databases · kubernetes · apps │
│ networking · monitoring · registry · functions │
│ do/credentials · do/transport · do/core │
├─────────────────────────────────────────────────────────────────┤
│ Cloudflare Units │
│ zones · dns · workers · kv · r2 · d1 · cache · waf │
│ lb · pages · tunnel · email · analytics │
│ cf/credentials · cf/transport · cf/core │
├─────────────────────────────────────────────────────────────────┤
│ Google Cloud Platform Units │
│ storage (GCS) · compute (GCE) · firestore · pubsub │
│ functions (GCF + GCR) · logging (+ monitoring) · secrets (+ IAM)│
│ gcp/credentials · gcp/jwt · gcp/oauth · gcp/transport │
├─────────────────────────────────────────────────────────────────┤
│ Netzwerk-Grundschicht │
│ std.net.https · std.net.tls · std.net.http │
└─────────────────────────────────────────────────────────────────┘
Beide Provider verwenden eigene Credential-Typen, die über mehrere Quellen geladen werden können:
AWS: AWSCreds — Credential Chain (Umgebungsvariablen → ~/.aws/credentials → EC2 Metadata):
import std.cloud.aws.core;
// Credential Chain: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY → ~/.aws/credentials → leer
var creds: AWSCreds := AWSCredentialsDefault();
// Oder explizit:
var creds2: AWSCreds := AWSCredentialsStatic("AKIAIOSFODNN7EXAMPLE"c, "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"c);
// Cleanup
AWSCredentialsFree(creds);
DigitalOcean: DOCredentials — Bearer-Token:
import std.cloud.do.credentials;
// Aus Umgebungsvariable DIGITALOCEAN_TOKEN
var creds: DOCredentials := DOCredentialsFromEnv();
// Oder direkt:
var creds2: DOCredentials := DOCredentialsFromToken("dop_v1_xxxx"c);
Die meisten Lese-Funktionen geben ein int64 zurück, das auf einen allokierten Puffer mit der API-Antwort (XML oder JSON als Rohtext) zeigt. Der Aufrufer ist für das Freigeben verantwortlich:
import std.cloud.s3;
import std.alloc;
var creds: AWSCreds := AWSCredentialsDefault();
var client: S3Client := S3Connect(creds, "eu-central-1"c);
var list: int64 := S3ListBuckets(client);
if (list != 0) {
// list zeigt auf XML-Text (<ListAllMyBucketsResult>...)
Print(list as pchar);
PrintLn(""c);
free(list, StrLen(list as pchar) + 1);
}
S3Close(client);
Google Cloud Platform: GCPCredentials — Application Default Credentials (ADC):
import std.cloud.gcp.credentials;
// Credential Chain: GOOGLE_APPLICATION_CREDENTIALS → ADC-Datei → GCE-Metadata
var creds: GCPCredentials := GCPCredentialsDefault(
"https://www.googleapis.com/auth/cloud-platform"c);
// Oder explizit aus Service-Account-JSON:
// var creds2: GCPCredentials := GCPCredentialsFromFile("/pfad/sa.json"c, scope);
// Cleanup
GCPCredentialsFree(creds);
Letzte Aktualisierung: 2026-06-13 (GCP ergänzt)