Documentation
¶
Overview ¶
Package cloudemu provides zero-cost, in-memory cloud emulation of AWS, Azure, and GCP cloud services for Go.
cloudemu follows a three-layer architecture:
Portable API: High-level types (storage.Bucket, compute.Compute, etc.) that wrap drivers with cross-cutting concerns like recording, metrics, rate limiting, and error injection.
Driver Interfaces: Minimal contracts (storage/driver, compute/driver, etc.) that each provider must implement.
Provider Implementations: In-memory backends (providers/aws/s3, providers/azure/blobstorage, providers/gcp/gcs, etc.) powered by a generic memstore.
10 cloud services are covered across all three providers: Storage, Compute, Database, Serverless, Networking, Monitoring, IAM, DNS, Load Balancer, and Message Queue.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package compute provides a portable compute API with cross-cutting concerns.
|
Package compute provides a portable compute API with cross-cutting concerns. |
|
driver
Package driver defines the interface for compute service implementations.
|
Package driver defines the interface for compute service implementations. |
|
Package config provides configuration options for cloudemu services.
|
Package config provides configuration options for cloudemu services. |
|
Package cost provides simulated cost tracking for cloud operations.
|
Package cost provides simulated cost tracking for cloud operations. |
|
Package database provides a portable database API with cross-cutting concerns.
|
Package database provides a portable database API with cross-cutting concerns. |
|
driver
Package driver defines the interface for database service implementations.
|
Package driver defines the interface for database service implementations. |
|
Package dns provides a portable DNS API with cross-cutting concerns.
|
Package dns provides a portable DNS API with cross-cutting concerns. |
|
driver
Package driver defines the interface for DNS service implementations.
|
Package driver defines the interface for DNS service implementations. |
|
Package errors provides canonical error codes for cloudemu services.
|
Package errors provides canonical error codes for cloudemu services. |
|
Package iam provides a portable IAM API with cross-cutting concerns.
|
Package iam provides a portable IAM API with cross-cutting concerns. |
|
driver
Package driver defines the interface for IAM service implementations.
|
Package driver defines the interface for IAM service implementations. |
|
Package inject provides error injection for testing cloudemu services.
|
Package inject provides error injection for testing cloudemu services. |
|
internal
|
|
|
idgen
Package idgen provides ID generators for various cloud resource types.
|
Package idgen provides ID generators for various cloud resource types. |
|
memstore
Package memstore provides a generic thread-safe in-memory key-value store.
|
Package memstore provides a generic thread-safe in-memory key-value store. |
|
Package loadbalancer provides a portable load balancer API with cross-cutting concerns.
|
Package loadbalancer provides a portable load balancer API with cross-cutting concerns. |
|
driver
Package driver defines the interface for load balancer service implementations.
|
Package driver defines the interface for load balancer service implementations. |
|
Package messagequeue provides a portable message queue API with cross-cutting concerns.
|
Package messagequeue provides a portable message queue API with cross-cutting concerns. |
|
driver
Package driver defines the interface for message queue service implementations.
|
Package driver defines the interface for message queue service implementations. |
|
Package metrics provides in-memory metrics collection for cloudemu services.
|
Package metrics provides in-memory metrics collection for cloudemu services. |
|
Package monitoring provides a portable monitoring API with cross-cutting concerns.
|
Package monitoring provides a portable monitoring API with cross-cutting concerns. |
|
driver
Package driver defines the interface for monitoring service implementations.
|
Package driver defines the interface for monitoring service implementations. |
|
Package networking provides a portable networking API with cross-cutting concerns.
|
Package networking provides a portable networking API with cross-cutting concerns. |
|
driver
Package driver defines the interface for networking service implementations.
|
Package driver defines the interface for networking service implementations. |
|
Package pagination provides generic pagination utilities for cloudemu services.
|
Package pagination provides generic pagination utilities for cloudemu services. |
|
providers
|
|
|
aws
Package aws provides AWS mock provider factories.
|
Package aws provides AWS mock provider factories. |
|
aws/awsiam
Package awsiam provides an in-memory mock implementation of AWS IAM.
|
Package awsiam provides an in-memory mock implementation of AWS IAM. |
|
aws/cloudwatch
Package cloudwatch provides an in-memory mock implementation of AWS CloudWatch.
|
Package cloudwatch provides an in-memory mock implementation of AWS CloudWatch. |
|
aws/elb
Package elb provides an in-memory mock implementation of AWS Elastic Load Balancing.
|
Package elb provides an in-memory mock implementation of AWS Elastic Load Balancing. |
|
aws/route53
Package route53 provides an in-memory mock implementation of AWS Route 53.
|
Package route53 provides an in-memory mock implementation of AWS Route 53. |
|
aws/sqs
Package sqs provides an in-memory mock implementation of AWS Simple Queue Service.
|
Package sqs provides an in-memory mock implementation of AWS Simple Queue Service. |
|
aws/vpc
Package vpc provides an in-memory mock implementation of AWS VPC networking.
|
Package vpc provides an in-memory mock implementation of AWS VPC networking. |
|
azure
Package azure provides Azure mock provider factories.
|
Package azure provides Azure mock provider factories. |
|
azure/azuredns
Package azuredns provides an in-memory mock implementation of Azure DNS.
|
Package azuredns provides an in-memory mock implementation of Azure DNS. |
|
azure/azureiam
Package azureiam provides an in-memory mock implementation of Azure Active Directory / IAM.
|
Package azureiam provides an in-memory mock implementation of Azure Active Directory / IAM. |
|
azure/azurelb
Package azurelb provides an in-memory mock implementation of Azure Load Balancer.
|
Package azurelb provides an in-memory mock implementation of Azure Load Balancer. |
|
azure/azuremonitor
Package azuremonitor provides an in-memory mock implementation of Azure Monitor.
|
Package azuremonitor provides an in-memory mock implementation of Azure Monitor. |
|
azure/blobstorage
Package blobstorage provides an in-memory mock implementation of Azure Blob Storage.
|
Package blobstorage provides an in-memory mock implementation of Azure Blob Storage. |
|
azure/cosmosdb
Package cosmosdb provides an in-memory mock implementation of Azure Cosmos DB.
|
Package cosmosdb provides an in-memory mock implementation of Azure Cosmos DB. |
|
azure/functions
Package functions provides an in-memory mock implementation of Azure Functions.
|
Package functions provides an in-memory mock implementation of Azure Functions. |
|
azure/servicebus
Package servicebus provides an in-memory mock implementation of Azure Service Bus.
|
Package servicebus provides an in-memory mock implementation of Azure Service Bus. |
|
azure/virtualmachines
Package virtualmachines provides an in-memory mock implementation of Azure Virtual Machines.
|
Package virtualmachines provides an in-memory mock implementation of Azure Virtual Machines. |
|
azure/vnet
Package vnet provides an in-memory mock implementation of Azure Virtual Network.
|
Package vnet provides an in-memory mock implementation of Azure Virtual Network. |
|
gcp
Package gcp provides GCP mock provider factories.
|
Package gcp provides GCP mock provider factories. |
|
gcp/clouddns
Package clouddns provides an in-memory mock implementation of GCP Cloud DNS.
|
Package clouddns provides an in-memory mock implementation of GCP Cloud DNS. |
|
gcp/cloudfunctions
Package cloudfunctions provides an in-memory mock implementation of Google Cloud Functions.
|
Package cloudfunctions provides an in-memory mock implementation of Google Cloud Functions. |
|
gcp/cloudmonitoring
Package cloudmonitoring provides an in-memory mock implementation of GCP Cloud Monitoring.
|
Package cloudmonitoring provides an in-memory mock implementation of GCP Cloud Monitoring. |
|
gcp/firestore
Package firestore provides an in-memory mock implementation of Google Cloud Firestore.
|
Package firestore provides an in-memory mock implementation of Google Cloud Firestore. |
|
gcp/gce
Package gce provides an in-memory mock implementation of Google Compute Engine.
|
Package gce provides an in-memory mock implementation of Google Compute Engine. |
|
gcp/gcpiam
Package gcpiam provides an in-memory mock implementation of GCP IAM.
|
Package gcpiam provides an in-memory mock implementation of GCP IAM. |
|
gcp/gcplb
Package gcplb provides an in-memory mock implementation of GCP Cloud Load Balancing.
|
Package gcplb provides an in-memory mock implementation of GCP Cloud Load Balancing. |
|
gcp/gcpvpc
Package gcpvpc provides an in-memory mock implementation of Google Cloud VPC networking.
|
Package gcpvpc provides an in-memory mock implementation of Google Cloud VPC networking. |
|
gcp/gcs
Package gcs provides an in-memory mock implementation of Google Cloud Storage.
|
Package gcs provides an in-memory mock implementation of Google Cloud Storage. |
|
gcp/pubsub
Package pubsub provides an in-memory mock implementation of GCP Pub/Sub.
|
Package pubsub provides an in-memory mock implementation of GCP Pub/Sub. |
|
Package ratelimit provides token bucket rate limiting for cloudemu services.
|
Package ratelimit provides token bucket rate limiting for cloudemu services. |
|
Package recorder provides call recording (VCR pattern) for cloudemu services.
|
Package recorder provides call recording (VCR pattern) for cloudemu services. |
|
Package serverless provides a portable serverless functions API with cross-cutting concerns.
|
Package serverless provides a portable serverless functions API with cross-cutting concerns. |
|
driver
Package driver defines the interface for serverless function service implementations.
|
Package driver defines the interface for serverless function service implementations. |
|
Package statemachine provides a generic finite state machine with callbacks.
|
Package statemachine provides a generic finite state machine with callbacks. |
|
Package storage provides a portable storage bucket API with cross-cutting concerns.
|
Package storage provides a portable storage bucket API with cross-cutting concerns. |
|
driver
Package driver defines the interface for storage service implementations.
|
Package driver defines the interface for storage service implementations. |
|
Package testhelper provides test suite helpers for cloudemu.
|
Package testhelper provides test suite helpers for cloudemu. |