Teleform is an Infrastructure-as-Code (IaC) library for Rust, offering a flexible and powerful alternative to tools like Terraform and Pulumi. It allows developers to describe infrastructure changes as a Directed Acyclic Graph (DAG), providing direct interaction with platform APIs without additional abstraction layers.
- Flexibility: Leverage the full power of Rust to define and manage your infrastructure.
- Direct API Interaction: No wrappers over platform-specific resources, allowing for precise and domain-specific configurations.
- Version Control: Infrastructure definitions are Rust code, easily tracked and managed with version control systems.
Teleform operates on the concept of local and remote states of resources, using these states to determine necessary actions such as creating, updating, or deleting resources.
Resources are defined as structs implementing the Resource
trait, with methods
for create
, read
, update
, and delete
. These methods are explicitly
unimplemented!
for developer convenience, allowing you to define only the
methods you need immediately.
Providers are associated types on the Resource
trait, facilitating interaction
with the platform's API. For example, AWS uses aws_config::SdkConfig
as its provider.
The store manages the synchronization and serialization of your resources to the filesystem. It is the main structure you interact with when defining your infrastructure in a command-line program.
Teleform is ideal for developers, especially those in solo or small team environments, seeking a more general and flexible solution to IaC. It is also suitable for those looking to migrate away from Terraform.
This software is in its early stages and primarily works along a happy path. Use it with caution and contribute if you can!