alien-bindings
Platform-agnostic binding abstractions for Alien applications. Defines traits for storage, KV, vault, queue, build, container, function, artifact registry, and service accounts, with per-platform provider implementations.
Architecture
traits.rs— Binding trait definitions (Storage,Kv,Vault,Queue,Build, etc.)provider.rs—BindingsProvider: holds all binding instances for a deployment, keyed by namebindings.rs—Bindings: app-facing entry point overBindingsProvider(storage,kv,queue,vault)providers/— Platform-specific implementations (AWS, GCP, Azure, Local, etc.)
Feature Flags
openapi— OpenAPI schema generation- Platform features:
aws,gcp,azure,kubernetes,local,test
Usage
use Bindings;
use Path;
let bindings = from_env?;
let storage = bindings.storage.await?;
storage.put.await?;
Adding New Providers
- Create a new module under
src/providers/implementingBindingsProvider - Add feature flag in
Cargo.toml - Update
get_platform_provider()inlib.rs
Adding New Binding Types
- Define the trait in
src/traits.rs - Add method to
BindingsProvider - Implement for each provider