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 namealien_context.rs—AlienContext: application-facing entry point (wrapsBindingsProvider)providers/— Platform-specific implementations (AWS, GCP, Azure, Local, etc.)grpc/— gRPC server + client for cross-process binding access (used by alien-runtime)
Feature Flags
grpc— gRPC server/client for cross-process binding accessopenapi— OpenAPI schema generation- Platform features:
aws,gcp,azure,kubernetes,local,test
Usage
use ;
let provider = get_platform_provider?;
let storage = provider.load_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