Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Alien Bindings
A Rust library that provides platform-agnostic bindings for Alien applications to access cloud resources like storage, KV, and more.
Purpose
The alien-bindings crate allows Alien applications to interact with various cloud resources without being tightly coupled to specific cloud providers. Applications can use the same code regardless of whether they're running on AWS, Google Cloud, or other supported platforms.
Features
- 🔌 Provider-agnostic bindings for cloud resources
- 🧩 Modular design with feature flags to reduce binary size
- 🔄 Automatic provider detection based on environment
- 🚀 Built on industry-standard libraries like
object_store
Usage
Add to your Cargo.toml:
[]
= { = "0.1.0", = ["aws", "gcp"] }
Example using storage binding:
use ;
async
Running Tests
Tests require cloud provider credentials to be set as environment variables. Create a .env.test file in the workspace root directory (the parent directory of alien-bindings/):
# Copy the example file
# Edit the file with your test credentials
Run tests with specific features, capturing output:
# Run AWS tests
# Run GCP tests
# Run all tests
Adding New Providers
To add a new provider (e.g., Azure):
-
Create a new module under
src/providers/:src/providers/ ├── azure/ │ ├── mod.rs # Contains AzureBindingsProvider implementation │ └── storage.rs # Contains AzureStorage implementation -
Implement the
BindingsProvidertrait:// src/providers/azure/mod.rs ; -
Add feature flag in
Cargo.toml:[] = ["azure_sdk_dependency"] -
Update
get_platform_provider()inlib.rsto include the new provider.
Adding New Binding Types
To add a new binding type (e.g., Queue):
-
Define the trait in
src/traits.rs: -
Add the corresponding method to
BindingsProvider: -
Implement the new binding for each provider.