Effect AWS

repository·main·Indexed 41 days ago

https://github.com/floydspace/effect-aws

A monorepo of libraries designed to simplify AWS integrations for developers using the Effect ecosystem. It provides Effect-ready clients for various AWS services, including Account, API Gateway, API Gateway V2, API Gateway Management API, Athena, and Auto Scaling, allowing for easy configuration via layers.

Tokens
154.3K
Snippets
598
Records
754
Agent score
51%

What's inside Effect AWS

  1. Introduction to Effect AWS

    main
    The @effect-aws/* collection provides a set of libraries designed to interact with AWS services using the Effect ecosystem. By wrapping AWS services in the Effect type, these libraries allow developers to leverage Effect's powerful capabilities for error handling, concurrency, dependency injection, and resource management when performing AWS operations.
  2. Overview of Effect AWS

    main
    Effect AWS is a collection of libraries designed to simplify AWS integrations within the Effect ecosystem. It provides specialized clients for various AWS services, allowing developers to interact with AWS using the type-safe and composable patterns provided by the Effect ecosystem.
  3. Overview of Effect AWS Packages

    main

    The effect-aws monorepo provides a collection of Effectful AWS clients. Each package provides a type-safe, functional wrapper around specific AWS services, designed to work seamlessly with the Effect ecosystem.

    Available packages include clients for various AWS services such as:

    • Account: @effect-aws/client-account
    • API Gateway: @effect-aws/client-api-gateway, @effect-aws/client-api-gateway-v2, and @effect-aws/client-api-gateway-management-api
    • Athena: @effect-aws/client-athena
    • Auto Scaling: @effect-aws/client-auto-scaling
    • Bedrock: @effect-aws/client-bedrock, @effect-aws/client-bedrock-runtime, @effect-aws/client-bedrock-agent, @effect-aws/client-bedrock-agentcore, and @effect-aws/client-bedrock-agentcore-control
    • CloudFront: @effect-aws/client-cloudfront
    • CloudSearch: @effect-aws/client-cloudsearch
    • CloudFormation: @effect-aws/client-cloudformation
    • CloudTrail: @effect-aws/client-cloudtrail
    • CloudWatch: @effect-aws/client-cloudwatch, @effect-aws/client-cloudwatch-events, and @effect-aws/client-cloudwatch-logs
    • Commons: @effect-aws/commons (contains shared utilities for all clients)
  4. Available Effect AWS Clients

    main

    The effect-aws monorepo provides a collection of effectful AWS clients. Each package is a specialized client for a specific AWS service, designed to work within the Effect ecosystem. You can install only the specific clients you need for your project.

    Available clients include:

    • Compute & Orchestration: CodeDeploy, EC2, ECS, EKS
    • Storage & Databases: DSQL, DynamoDB, ElastiCache, ECR
    • Messaging & Integration: EventBridge, Firehose, Kinesis, IoT, IoT Data Plane, IoT Jobs Data Plane, IoT Wireless
    • Security & Identity: Cognito Identity Provider, IAM, KMS
    • Data & Analytics: Athena, Data Pipeline, Glue
    • AI/ML: Bedrock, Bedrock Agent, Bedrock AgentCore, Bedrock Runtime
    • Other Services: API Gateway (and management APIs), Auto Scaling, IVS
  5. Understand the Effect AWS monorepo structure

    main

    The effect-aws repository is organized as a monorepo containing two main types of packages:

    1. Clients: These packages correspond directly to native AWS service clients (e.g., @effect-aws/client-athena, @effect-aws/client-bedrock).
    2. Helper Packages: Additional packages designed to assist with common tasks or provide utility functionality across the AWS ecosystem.

    When looking for a specific AWS service integration, search for a package prefixed with @effect-aws/client- followed by the service name.

  6. How AWS Services are generated in Effect AWS

    main

    Effect AWS services are generated based on the AWS SDK v3 specifications found in the official AWS SDK JS v3 repository. The generation process uses a CLI wizard that reads these specifications and produces Effectful services.

    Generated services are published to npm under the @effect-aws/<service-name> scope. Note that service names are often normalized for readability (e.g., apigatewayv2 is normalized to api-gateway-v2).