What problem does it solve?
CanOpener eliminates the manual, error-prone work of writing and maintaining Elixir API client wrappers by generating a typed client directly from an OpenAPI specification.
Core Features & Use Cases
- Compile-time OpenAPI client generation: Generates typed client functions, schema structs, and from_map/1 decoders with zero runtime reflection.
- Repeatable bootstrap and refresh: Scaffolds a new Elixir API client package from openapi.json, and later updates it when the spec changes.
- HTTP auth and naming control: Supports common auth strategies (bearer, custom header, or none) and uses path prefix rules to shape generated function naming.
Quick Start
Ask the AI: create an Elixir client library using can-opener by scaffolding from my openapi.json with package name billing_client, module BillingClient, base url https://api.example.com, bearer auth, and path prefix /api/v1/.