awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
goadesign avatar

goadesign/goa

0
View on GitHub↗
6,084 stars·584 forks·Go·MIT·17 viewsgoa.design↗

Goa

Goa is a design-first Go framework that generates server and client code, documentation, and request validation from a single declarative domain-specific language (DSL). At its core, it provides a Go DSL for defining API endpoints, data types, and error models, which compiles into fully functional HTTP and gRPC server stubs, client packages, and OpenAPI specifications.

The framework distinguishes itself through its plugin-extensible code generation pipeline, allowing custom code generation steps, middleware, or transport layers to be added via plugins. It supports multiple transport protocols from the same design definition, enabling HTTP, gRPC, and WebSocket communication without code duplication. Automatic request validation checks incoming payloads against the DSL-defined schema before they reach handler logic, ensuring data integrity without manual validation code.

Goa automatically generates and serves OpenAPI 2.0 and 3.0 documentation directly from the API design, keeping documentation synchronized with implementation. The framework produces ready-to-use client libraries from the same design definition used for server code, maintaining consistency across the entire API surface.

Features

  • API-First Design Workflows - Defines API endpoints, data types, and error models in a declarative DSL that compiles into server and client code.
  • API - Provides a Go DSL for defining service endpoints, data types, and error models that compiles into executable code and OpenAPI specs.
  • API Code Generators - Produces fully functional HTTP and gRPC server stubs from the API design specification.
  • Plugin-Extensible Code Generation Pipelines - Ships a plugin-extensible compilation pipeline that allows custom code generation steps, middleware, or transport layers.
  • OpenAPI Specification Generators - Automatically generates and serves OpenAPI 2.0 and 3.0 specifications directly from the API design.
  • Design-First Code Generators - Generates fully functional HTTP and gRPC server stubs and client packages from a single declarative Go DSL.
  • Multi-Transport Code Generators - Produces fully functional HTTP and gRPC server stubs and client packages from a single API design file.
  • Contract-First API Frameworks - A design-first Go framework that generates server and client code, documentation, and validation from a single declarative DSL.
  • DSL-Driven Validations - Validates incoming requests automatically against the DSL-defined schema before reaching handler logic.
  • Compilable DSLs - Provides a Go DSL that compiles into fully functional HTTP and gRPC server stubs and client packages.
  • Request Validation - Automatically validates incoming request payloads against the DSL-defined schema before handler logic.
  • Request Validation and Routing Pipelines - Checks incoming request payloads against DSL-defined schemas before they reach handler logic.
  • DSL-Driven Generation - Generates server and client code by compiling a declarative domain-specific language into executable implementations.
  • Client Library Generators - Generates ready-to-use client libraries from the same API design definition used for server code.
  • Multi-Protocol Code Generators - Generates HTTP, gRPC, and WebSocket server stubs and client packages from a single design definition.
  • Design Compilation Plugins - Extends the design compilation pipeline with custom code generation steps, middleware, or transport layers through a plugin system.
  • API Transport Abstractions - Maps a single API design to HTTP, gRPC, and WebSocket transports through a unified code generation pipeline.
  • Code Generation Pipeline Plugins - Extends code generation by inserting custom steps into the design compilation process via a plugin interface.
  • Code Generation Plugins - Ships a plugin system for extending the design compilation pipeline with custom code generation steps and transport layers.
  • Microservices - Microservice design framework.
  • Service Governance and Platforms - Framework for design-first service development and API generation.
  • API Design and Generation - Design-first framework that generates API code and documentation.
  • Language Toolkits - Design-based HTTP microservices framework for Go.
  • Web Frameworks - Design-first framework generating API code and documentation.

Star history

Star history chart for goadesign/goaStar history chart for goadesign/goa

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does goadesign/goa do?

Goa is a design-first Go framework that generates server and client code, documentation, and request validation from a single declarative domain-specific language (DSL). At its core, it provides a Go DSL for defining API endpoints, data types, and error models, which compiles into fully functional HTTP and gRPC server stubs, client packages, and OpenAPI specifications.

What are the main features of goadesign/goa?

The main features of goadesign/goa are: API-First Design Workflows, API, API Code Generators, Plugin-Extensible Code Generation Pipelines, OpenAPI Specification Generators, Design-First Code Generators, Multi-Transport Code Generators, Contract-First API Frameworks.

What are some open-source alternatives to goadesign/goa?

Open-source alternatives to goadesign/goa include: microsoft/typespec — TypeSpec is a language for defining cloud API shapes and generating OpenAPI, JSON Schema, and client/server code from… go-kratos/kratos — Kratos is a toolkit for building cloud-native microservices in Go. It provides a comprehensive suite of framework… tal-tech/go-zero — go-zero is a toolkit for building cloud-native distributed services in Go. It functions as a microservices framework… micro/go-micro — Go-micro is a distributed systems development toolkit designed for building, connecting, and managing modular… middleapi/orpc — orpc is a contract-first API development framework for TypeScript that starts with a shared contract definition and… swagger-api/swagger-codegen — Swagger Codegen is a template-driven engine and multi-language toolkit used to generate API client SDKs, server stubs,…

Open-source alternatives to Goa

Similar open-source projects, ranked by how many features they share with Goa.
  • microsoft/typespecmicrosoft avatar

    microsoft/typespec

    5,781View on GitHub↗

    TypeSpec is a language for defining cloud API shapes and generating OpenAPI, JSON Schema, and client/server code from a single source of truth. It functions as a protocol-agnostic API designer that models REST, gRPC, and other API protocols using a unified, extensible syntax, with a decorator-based metadata system for attaching metadata, validation rules, and lifecycle visibility to API models and operations. The compiler produces OpenAPI 3.0 specifications and other artifacts, and the tool supports declaring API versions and tracking changes to models, properties, and operations across releas

    Javajson-schemaopenapi3protobuf
    View on GitHub↗5,781
  • go-kratos/kratosgo-kratos avatar

    go-kratos/kratos

    25,743View on GitHub↗

    Kratos is a toolkit for building cloud-native microservices in Go. It provides a comprehensive suite of framework primitives, including a dedicated toolset for API-first development using Protobuf to generate server and client code for gRPC and HTTP. The project is distinguished by its pluggable service infrastructure, which allows for the swapping of configuration stores, service registries, and data encoding formats. It utilizes a composable middleware pipeline to inject cross-cutting concerns such as authentication, request validation, and circuit breaking into the service flow. The frame

    Goaiarchitecturecloud-native
    View on GitHub↗25,743
  • tal-tech/go-zerotal-tech avatar

    tal-tech/go-zero

    33,103View on GitHub↗

    go-zero is a toolkit for building cloud-native distributed services in Go. It functions as a microservices framework that provides built-in support for RPC, web APIs, and service discovery. The project includes a microservices code generator that produces production-ready server and client boilerplate from API descriptions. This automation is supported by a domain-specific language and pattern libraries designed to ensure compatibility with AI assistants. The framework incorporates a resilience suite for distributed system reliability, utilizing adaptive circuit breakers, rate limiting, and

    Go
    View on GitHub↗33,103
  • micro/go-micromicro avatar

    micro/go-micro

    22,810View on GitHub↗

    Go-micro is a distributed systems development toolkit designed for building, connecting, and managing modular microservices. It provides a comprehensive framework for service discovery, remote procedure call abstraction, and event-driven messaging, allowing developers to create decoupled architectures that communicate asynchronously through shared message brokers. The project distinguishes itself by integrating autonomous agent orchestration and language model tool binding directly into the service lifecycle. By exposing internal service endpoints as standardized tools, it enables AI agents t

    Godistributed-systemsgogolang
    View on GitHub↗22,810
  • See all 30 alternatives to Goa→