alchemy-effect  by alchemy-run

Infrastructure and application logic unified in a single type-safe program

Created 7 months ago
489 stars

Top 62.5% on SourcePulse

GitHubView on GitHub
Project Summary

Alchemy: Infrastructure-as-Effects

Alchemy provides a framework for defining cloud infrastructure and application logic within a single, type-safe program using the Effect functional programming library. It targets developers seeking to unify their cloud development workflow, eliminating the need for separate configuration languages like YAML and distinct runtimes for infrastructure management and application execution. The primary benefit is a more integrated, type-safe, and potentially less error-prone development experience for cloud-native applications.

How It Works

Alchemy leverages the Effect library's capabilities to represent cloud resources, environment variables, and application code as composable effects. Core to its design is the concept of "Infrastructure-as-Effects," where resources like S3 buckets or Lambda functions are declared and managed within the same program as the application logic that uses them. The bind() function is central, wiring together resource definitions, environment variables, and typed SDK clients in a single, declarative step. This approach ensures that infrastructure configurations are validated at compile time and that cloud API interactions are handled with type-safe error management inherent to the Effect system.

Quick Start & Requirements

Installation is straightforward: bun add alchemy effect. The project suggests using AI coding agents (like Claude Code or Cursor) with a specific prompt to assist with setup, building, testing, and deployment, leveraging the provided documentation index (llms.txt).

Highlighted Details

  • Enables using the same code across local development, CI/CD pipelines, and runtime environments.
  • Provides type-safe handling of all cloud API errors as tagged Effect errors.
  • Supports AWS services (S3, SQS, DynamoDB, Kinesis, Lambda, EC2) and Cloudflare services (Workers, R2, D1, Durable Objects, Containers).
  • Simplifies resource binding through a unified bind() mechanism for IAM policies, environment variables, and typed SDK calls.

Maintenance & Community

Alchemy is actively developed, with a community Discord server available for support and discussion. The project is currently in an alpha state.

Licensing & Compatibility

The project is licensed under the Apache 2.0 license, which generally permits commercial use and integration into closed-source projects.

Limitations & Caveats

Alchemy is explicitly stated to be in alpha, meaning users should anticipate breaking changes and potential instability. The framework's maturity may be limited compared to established infrastructure management tools.

Health Check
Last Commit

16 hours ago

Responsiveness

Inactive

Pull Requests (30d)
296
Issues (30d)
36
Star History
306 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.