teleform-derive 0.1.0

Teleform-Derive provides procedural macros for the Teleform library, enabling easy implementation of traits for Infrastructure as Code (IaC) in Rust.
Documentation
<img src="https://raw.githubusercontent.com/schell/teleform/main/globe.png" alt="teleform logo" width="250">

# Teleform

## What is Teleform?

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.

## Why use Teleform?

- **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.

## How does it work?

### High-Level Overview

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

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

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.

### Store

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.

## Target audience

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.

## WARNING: Alpha Software!

This software is in its early stages and primarily works along a happy path. Use
it with caution and contribute if you can!