Provider System
Overview
flowchart TB
subgraph cli["spuff CLI"]
subgraph registry["Provider Registry"]
factory["ProviderFactory"]
create["create()"]
boxprovider["Box<dyn Provider>"]
factory --> create --> boxprovider
end
subgraph trait["Provider Trait"]
methods["create_instance() destroy_instance() list_instances()<br/>get_instance() wait_ready() create_snapshot()<br/>list_snapshots() delete_snapshot() get_ssh_keys()"]
end
boxprovider --> trait
subgraph providers["Implementations"]
do["DigitalOcean<br/>Provider + Factory"]
hetzner["Hetzner<br/>Provider + Factory"]
aws["AWS<br/>Provider + Factory"]
end
trait --> do
trait --> hetzner
trait --> aws
endArchitecture
Main Components
File
Responsibility
Provider Creation Flow
Core Types
InstanceRequest
ImageSpec
ProviderInstance
InstanceStatus
ProviderError
Current Providers
Provider
Status
File
Env Var
Documentation
Contributing
Design Decisions
Last updated
Was this helpful?