프로젝트 소개
Alchemy는 스스로를 "Infrastructure-as-Effects"라고 설명합니다. 즉, 클라우드 인프라와 애플리케이션 로직을 하나의 타입 안전한 Effect 프로그램으로 작성하는 것입니다. 인프라 구성과 런타임 코드를 분리하는 대신, 리소스, Workers/Lambdas, IAM 정책, SDK 호출이 같은 프로그램 안에 존재하며 YAML도, 두 번째 런타임도 없습니다.
README의 핵심 아이디어:
- 하나의 프로그램, 하나의 언어: 리소스, 함수, IAM, SDK가 동일한 Effect 프로그램을 공유합니다.
- 글루 코드 대신 바인딩: S3.GetObject(bucket) 같은 호출이 IAM 정책, 환경 변수, 타입이 지정된 SDK 호출을 한 줄로 연결한다고 합니다. 예시에서는 Cloudflare.R2.ReadWriteBucket(Bucket)이 배포 시점과 런타임 모두에서 바인딩, 환경 변수, 타입이 지정된 클라이언트를 연결하는 모습을 보여줍니다.
- 타입 시스템 안의 오류: 클라우드 API 실패는 의도적으로 처리할 수 있는 태그된 Effect 오류로 표현됩니다.
- 현재 제공자 범위: AWS(S3, SQS, DynamoDB, Kinesis, Lambda, EC2)와 Cloudflare(Workers, R2, D1, Durable Objects, Containers).
- 단계 전반에서 동일한 코드: 로컬 개발, plan/deploy, 스모크 테스트, CI가 하나의 멘탈 모델을 공유하는 것으로 제시됩니다.
설치 방법은 `bun add alchemy@latest effect@rc`로 표시됩니다. 루트 GitHub Action은 `main`에서 `prod`를 배포하고, PR 프리뷰를 `staging-{number}`로 배포하며, PR이 닫히면 프리뷰를 제거할 수 있습니다. 워크플로는 action이 실행되기 전에 alchemy CLI를 설치해야 합니다. README는 또한 llms.txt 문서 인덱스를 가져오는 AI 코딩 에이전트용 프롬프트와 튜토리얼, 예제, Discord 링크를 제공합니다.
이 프로젝트는 알파 단계이며 호환성을 깨는 변경이 예상된다고 밝히고 있습니다. Apache 2.0 라이선스로 제공되며, 제3자 라이선스는 별도로 문서화되어 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.