{"owner":"labstack","repo":"echo","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## About This Project\n\nEcho is a high performance, minimalist Go web framework. This is the main repository for Echo v4, which is available as a Go module at `github.com/labstack/echo/v4`.\n\n## Development Commands\n\nThe project uses a Makefile for common development tasks:\n\n- `make check` - Run linting, vetting, and race condition tests (default target)\n- `make init` - Install required linting tools (golint, staticcheck)\n- `make lint` - Run staticcheck and golint\n- `make vet` - Run go vet\n- `make test` - Run short tests\n- `make race` - Run tests with race detector\n- `make benchmark` - Run benchmarks\n\nExample commands for development:\n```bash\n# Setup development environment\nmake init\n\n# Run all checks (lint, vet, race)\nmake check\n\n# Run specific tests\ngo test ./middleware/...\ngo test -race ./...\n\n# Run benchmarks\nmake benchmark\n```\n\n## Code Architecture\n\n### Core Components\n\n**Echo Instance (`echo.go`)**\n- The `Echo` struct is the top-level framework instance\n- Contains router, middleware stacks, and server configuration\n- Not goroutine-safe for mutations after server start\n\n**Context (`context.go`)**\n- The `Context` interface represents HTTP request/response context\n- Provides methods for request/response handling, path parameters, data binding\n- Core abstraction for request processing\n\n**Router (`router.go`)**\n- Radix tree-based HTTP router with smart route prioritization\n- Supports static routes, parameterized routes (`/users/:id`), and wildcard routes (`/static/*`)\n- Each HTTP method has its own routing tree\n\n**Middleware (`middleware/`)**\n- Extensive middleware system with 50+ built-in middlewares\n- Middleware can be applied at Echo, Group, or individual route level\n- Common middleware: Logger, Recover, CORS, JWT, Rate Limiting, etc.\n\n### Key Patterns\n\n**Middleware Chain**\n- Pre-middleware runs before routing\n- Regular middleware runs after routing but before handlers\n- Middleware functions have signature `func(next echo.HandlerFunc) echo.HandlerFunc`\n\n**Route Groups**\n- Routes can be grouped with common prefixes and middleware\n- Groups support nested sub-groups\n- Defined in `group.go`\n\n**Data Binding**\n- Automatic binding of request data (JSON, XML, form) to Go structs\n- Implemented in `binder.go` with support for custom binders\n\n**Error Handling**\n- Centralized error handling via `HTTPErrorHandler`\n- Automatic panic recovery with stack traces\n\n## File Organization\n\n- Root directory: Core Echo functionality (echo.go, context.go, router.go, etc.)\n- `middleware/`: All built-in middleware implementations\n- `_test/`: Test fixtures and utilities\n- `_fixture/`: Test data files\n\n## Code Style\n\n- Go code uses tabs for indentation (per .editorconfig)\n- Follows standard Go conventions and formatting\n- Uses gofmt, golint, and staticcheck for code quality\n\n## Testing\n\n- Standard Go testing with `testing` package\n- Tests include unit tests, integration tests, and benchmarks\n- Race condition testing is required (`make race`)\n- Test files follow `*_test.go` naming convention"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## About This Project\n\nEcho is a high performance, minimalist Go web framework. This is the main repository for Echo v4, which is available as a Go module at `github.com/labstack/echo/v4`.\n\n## Development Commands\n\nThe project uses a Makefile for common development tasks:\n\n- `make check` - Run linting, vetting, and race condition tests (default target)\n- `make init` - Install required linting tools (golint, staticcheck)\n- `make lint` - Run staticcheck and golint\n- `make vet` - Run go vet\n- `make test` - Run short tests\n- `make race` - Run tests with race detector\n- `make benchmark` - Run benchmarks\n\nExample commands for development:\n```bash\n# Setup development environment\nmake init\n\n# Run all checks (lint, vet, race)\nmake check\n\n# Run specific tests\ngo test ./middleware/...\ngo test -race ./...\n\n# Run benchmarks\nmake benchmark\n```\n\n## Code Architecture\n\n### Core Components\n\n**Echo Instance (`echo.go`)**\n- The `Echo` struct is the top-level framework instance\n- Contains router, middleware stacks, and server configuration\n- Not goroutine-safe for mutations after server start\n\n**Context (`context.go`)**\n- The `Context` interface represents HTTP request/response context\n- Provides methods for request/response handling, path parameters, data binding\n- Core abstraction for request processing\n\n**Router (`router.go`)**\n- Radix tree-based HTTP router with smart route prioritization\n- Supports static routes, parameterized routes (`/users/:id`), and wildcard routes (`/static/*`)\n- Each HTTP method has its own routing tree\n\n**Middleware (`middleware/`)**\n- Extensive middleware system with 50+ built-in middlewares\n- Middleware can be applied at Echo, Group, or individual route level\n- Common middleware: Logger, Recover, CORS, JWT, Rate Limiting, etc.\n\n### Key Patterns\n\n**Middleware Chain**\n- Pre-middleware runs before routing\n- Regular middleware runs after routing but before handlers\n- Middleware functions have signature `func(next echo.HandlerFunc) echo.HandlerFunc`\n\n**Route Groups**\n- Routes can be grouped with common prefixes and middleware\n- Groups support nested sub-groups\n- Defined in `group.go`\n\n**Data Binding**\n- Automatic binding of request data (JSON, XML, form) to Go structs\n- Implemented in `binder.go` with support for custom binders\n\n**Error Handling**\n- Centralized error handling via `HTTPErrorHandler`\n- Automatic panic recovery with stack traces\n\n## File Organization\n\n- Root directory: Core Echo functionality (echo.go, context.go, router.go, etc.)\n- `middleware/`: All built-in middleware implementations\n- `_test/`: Test fixtures and utilities\n- `_fixture/`: Test data files\n\n## Code Style\n\n- Go code uses tabs for indentation (per .editorconfig)\n- Follows standard Go conventions and formatting\n- Uses gofmt, golint, and staticcheck for code quality\n\n## Testing\n\n- Standard Go testing with `testing` package\n- Tests include unit tests, integration tests, and benchmarks\n- Race condition testing is required (`make race`)\n- Test files follow `*_test.go` naming convention"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## About This Project\n\nEcho is a high performance, minimalist Go web framework. This is the main repository for Echo v4, which is available as a Go module at `github.com/labstack/echo/v4`.\n\n## Development Commands\n\nThe project uses a Makefile for common development tasks:\n\n- `make check` - Run linting, vetting, and race condition tests (default target)\n- `make init` - Install required linting tools (golint, staticcheck)\n- `make lint` - Run staticcheck and golint\n- `make vet` - Run go vet\n- `make test` - Run short tests\n- `make race` - Run tests with race detector\n- `make benchmark` - Run benchmarks\n\nExample commands for development:\n```bash\n# Setup development environment\nmake init\n\n# Run all checks (lint, vet, race)\nmake check\n\n# Run specific tests\ngo test ./middleware/...\ngo test -race ./...\n\n# Run benchmarks\nmake benchmark\n```\n\n## Code Architecture\n\n### Core Components\n\n**Echo Instance (`echo.go`)**\n- The `Echo` struct is the top-level framework instance\n- Contains router, middleware stacks, and server configuration\n- Not goroutine-safe for mutations after server start\n\n**Context (`context.go`)**\n- The `Context` interface represents HTTP request/response context\n- Provides methods for request/response handling, path parameters, data binding\n- Core abstraction for request processing\n\n**Router (`router.go`)**\n- Radix tree-based HTTP router with smart route prioritization\n- Supports static routes, parameterized routes (`/users/:id`), and wildcard routes (`/static/*`)\n- Each HTTP method has its own routing tree\n\n**Middleware (`middleware/`)**\n- Extensive middleware system with 50+ built-in middlewares\n- Middleware can be applied at Echo, Group, or individual route level\n- Common middleware: Logger, Recover, CORS, JWT, Rate Limiting, etc.\n\n### Key Patterns\n\n**Middleware Chain**\n- Pre-middleware runs before routing\n- Regular middleware runs after routing but before handlers\n- Middleware functions have signature `func(next echo.HandlerFunc) echo.HandlerFunc`\n\n**Route Groups**\n- Routes can be grouped with common prefixes and middleware\n- Groups support nested sub-groups\n- Defined in `group.go`\n\n**Data Binding**\n- Automatic binding of request data (JSON, XML, form) to Go structs\n- Implemented in `binder.go` with support for custom binders\n\n**Error Handling**\n- Centralized error handling via `HTTPErrorHandler`\n- Automatic panic recovery with stack traces\n\n## File Organization\n\n- Root directory: Core Echo functionality (echo.go, context.go, router.go, etc.)\n- `middleware/`: All built-in middleware implementations\n- `_test/`: Test fixtures and utilities\n- `_fixture/`: Test data files\n\n## Code Style\n\n- Go code uses tabs for indentation (per .editorconfig)\n- Follows standard Go conventions and formatting\n- Uses gofmt, golint, and staticcheck for code quality\n\n## Testing\n\n- Standard Go testing with `testing` package\n- Tests include unit tests, integration tests, and benchmarks\n- Race condition testing is required (`make race`)\n- Test files follow `*_test.go` naming convention","category":"root","tokens":784}]}