beet_infra
beet_infra extends the "everything is an entity" idea all the way out to the cloud. Infrastructure is declared as Bevy entities and exported to Terraform/OpenTofu JSON, so a beet app can plan, deploy and destroy the resources it runs on, all from within the same world that describes the app itself.
Building on OpenTofu means beet does not reinvent the deploy engine; it provides the modelling layer above it. The crate is organised around a few concerns:
terrabuilds and exports the OpenTofu JSON configuration.bindingsships pre-generated typed bindings for common providers, with abindings_generatorto derive new ones from a provider schema.- the
deployfeature adds actions for the full lifecycle: validate, plan, deploy, watch, show and destroy.
The deploy examples (hello_lambda, hello_fargate, hello_lightsail) take the router example and stand it up on AWS, so the application and the infrastructure it lands on are described in the same language.