# kataras/iris

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/kataras-iris).**

25,582 stars · 2,432 forks · Go · BSD-3-Clause

## Links

- GitHub: https://github.com/kataras/iris
- Homepage: https://www.iris-go.com
- awesome-repositories: https://awesome-repositories.com/repository/kataras-iris.md

## Description

Iris is a high-performance web framework and API toolkit for the Go programming language. It provides the infrastructure necessary to build HTTP/2 web applications, REST APIs, and MVC-based websites.

The project distinguishes itself through a flexible architectural model that supports multiple isolated application instances within a single process and allows for binary-embedded asset loading to eliminate external filesystem dependencies. It features dynamic router hot-reloading and a pluggable view engine for rendering dynamic HTML content.

The framework covers a broad range of capabilities, including advanced radix-tree routing, reflection-based dependency injection, and a comprehensive middleware system for panic recovery and request modification. It includes integrated tools for session management, user authentication, response compression, and performance profiling.

The toolkit also provides development utilities such as automatic template reloading and live browser refresh injection.

## Tags

### Web Development

- [Full-Stack Web Frameworks](https://awesome-repositories.com/f/web-development/full-stack-web-frameworks.md) — Provides a full-stack framework for building websites with dynamic HTML templates, session management, and server-side rendering.
- [Go Web Frameworks](https://awesome-repositories.com/f/web-development/go-web-frameworks.md) — Acts as a high-performance web framework for building HTTP/2 applications and REST APIs using Go.
- [API Routing](https://awesome-repositories.com/f/web-development/api-routing.md) — Manages incoming requests using advanced routing features like dynamic paths, wildcards, and subdomains. ([source](https://github.com/kataras/iris/tree/main/_examples))
- [Backend Servers](https://awesome-repositories.com/f/web-development/backend-servers.md) — Implements a full server-side platform providing core infrastructure including middleware, authentication, and environment configuration.
- [Dynamic Routing](https://awesome-repositories.com/f/web-development/dynamic-routing.md) — Supports dynamic routing using wildcards and subdomain matching to control application request flow. ([source](https://github.com/kataras/iris/blob/main/_examples))
- [Dynamic Template Rendering](https://awesome-repositories.com/f/web-development/dynamic-template-rendering.md) — Processes HTML templates using pluggable view engines to generate dynamic web pages. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [Go API Toolkits](https://awesome-repositories.com/f/web-development/go-api-toolkits.md) — Offers a specialized set of tools for data binding and dependency injection within Go-based APIs.
- [High-Performance Web Services](https://awesome-repositories.com/f/web-development/high-performance-web-services.md) — Provides an HTTP/2 server optimized with response compression, caching, and rate limiting for high traffic.
- [HTML Templating Engines](https://awesome-repositories.com/f/web-development/html-templating-engines.md) — Processes templates using multiple engines to generate dynamic responses including layouts and partials. ([source](https://github.com/kataras/iris/tree/main/view))
- [HTTP Routers](https://awesome-repositories.com/f/web-development/http-routers.md) — Includes a powerful routing system with support for dynamic paths, wildcards, and subdomain matching.
- [HTTP Server Configuration](https://awesome-repositories.com/f/web-development/http-server-configuration.md) — Sets up listening ports, sockets, and certificates for network connectivity. ([source](https://github.com/kataras/iris/blob/main/_examples))
- [Middleware Chains](https://awesome-repositories.com/f/web-development/middleware-chains.md) — Implements a pipeline of shared logic layers for cross-cutting concerns like authentication and logging.
- [Radix Tree Routers](https://awesome-repositories.com/f/web-development/radix-tree-routers.md) — Utilizes a radix-tree structure for high-performance path and wildcard matching during request dispatching.
- [Reflection-Based Data Binding](https://awesome-repositories.com/f/web-development/reflection-based-data-binding.md) — Uses Go reflection to automatically map request parameters and bodies to handler function arguments.
- [Request Data Binding](https://awesome-repositories.com/f/web-development/request-data-binding.md) — Automatically maps URL parameters, query strings, and request bodies into structured Go objects. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [Request Middleware](https://awesome-repositories.com/f/web-development/request-middleware.md) — Features a comprehensive middleware system for intercepting and processing the HTTP request-response cycle. ([source](https://github.com/kataras/iris/blob/main/_examples))
- [RESTful API Development](https://awesome-repositories.com/f/web-development/restful-api-development.md) — Provides a comprehensive framework for building scalable RESTful web services and endpoints in Go.
- [Application Route Definitions](https://awesome-repositories.com/f/web-development/routing-systems/routing/route-definition-strategies/application-route-definitions.md) — Maps HTTP paths and methods to specific handler functions to organize request processing. ([source](https://github.com/kataras/iris/blob/main/iris_guide.go))
- [gRPC Service Implementations](https://awesome-repositories.com/f/web-development/api-management-tools/api-development-management/api-client-implementations/grpc-service-implementations.md) — Serves and manages gRPC controllers within a unified web server infrastructure. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [Content Negotiation Utilities](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling/content-negotiation-utilities.md) — Includes utilities to serve different response formats based on client-requested media types and headers. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [Dynamic Route Reloading](https://awesome-repositories.com/f/web-development/dynamic-route-reloading.md) — Updates the routing configuration and path mappings while the server is running without requiring a restart. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [Panic Recovery](https://awesome-repositories.com/f/web-development/error-handling/panic-recovery.md) — Includes middleware to intercept runtime crashes and return graceful error responses to the client.
- [File Uploads](https://awesome-repositories.com/f/web-development/file-uploads.md) — Processes single or multiple file uploads from clients, including support for multipart form data. ([source](https://github.com/kataras/iris/blob/main/_examples))
- [Pluggable View Engines](https://awesome-repositories.com/f/web-development/html-templating-engines/pluggable-view-engines.md) — Renders dynamic HTML content using a pluggable system that allows swapping different template engines.
- [HTTP Error Handling](https://awesome-repositories.com/f/web-development/http-error-handling.md) — Provides custom logic and response bodies for handling specific HTTP status codes. ([source](https://github.com/kataras/iris/blob/main/_examples))
- [Response Compression](https://awesome-repositories.com/f/web-development/response-compression.md) — Reduces bandwidth usage by compressing outgoing response bodies and decoding incoming request data. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [Web Infrastructure & Servers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers.md) — Provides infrastructure for managing server lifecycles, TLS certificates, and hosting Go-based network services.
- [Static Asset Serving](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-server-capabilities/static-asset-serving.md) — Delivers static assets from the local filesystem or embedded binaries with compression and rate limiting. ([source](https://github.com/kataras/iris/blob/main/_examples))

### Development Tools & Productivity

- [Dynamic Templates](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/templating-engines/dynamic-templates.md) — Generates HTML content using template engines with support for layout inheritance and data injection. ([source](https://github.com/kataras/iris/blob/main/_examples))
- [Configuration Hot-Reloading](https://awesome-repositories.com/f/development-tools-productivity/configuration-hot-reloading.md) — Enables updating the routing table and path mappings at runtime without requiring a server restart.

### Software Engineering & Architecture

- [Dependency Injection](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection.md) — Implements a dependency injection system to bind request parameters and bodies to handler arguments. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [MVC Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/mvc-frameworks.md) — Implements a model-view-controller pattern to separate data, presentation, and control logic. ([source](https://github.com/kataras/iris/blob/main/doc.go))
- [Application Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management.md) — Controls application startup and shutdown processes including graceful exits and custom listeners. ([source](https://github.com/kataras/iris/tree/main/_examples))
- [Application Instance Routing](https://awesome-repositories.com/f/software-engineering-architecture/cross-application-orchestration/application-instance-routing.md) — Directs incoming requests to specific isolated application instances based on ordered filters and provider cases. ([source](https://github.com/kataras/iris/tree/main/apps))
- [Multi-Application Coordination](https://awesome-repositories.com/f/software-engineering-architecture/multi-application-coordination.md) — Coordinates multiple service components by managing globally scoped application instances by name. ([source](https://github.com/kataras/iris/tree/main/apps))
- [Rate Limiting](https://awesome-repositories.com/f/software-engineering-architecture/request-throttling/rate-limiting.md) — Caps the number of incoming requests per client to prevent service abuse and maintain system stability. ([source](https://github.com/kataras/iris/tree/main/middleware))

### Data & Databases

- [API Response Caching](https://awesome-repositories.com/f/data-databases/api-response-caching.md) — Implements caching for handler outputs to serve repeat requests using customizable storage and expiration logic. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [Database Access Layers](https://awesome-repositories.com/f/data-databases/external-storage-integrations/database-access-layers.md) — Establishes type-safe access to external databases within the request lifecycle. ([source](https://github.com/kataras/iris/tree/main/middleware))

### DevOps & Infrastructure

- [Application Settings Management](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/application-settings-management.md) — Allows adjusting operational behaviors like character sets and logging through static configurations or functional options. ([source](https://github.com/kataras/iris/blob/main/configuration_test.go))

### Operating Systems & Systems Programming

- [In-Process Instance Isolation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/multi-instance-process-isolations/in-process-instance-isolation.md) — Coordinates multiple independent application instances within a single process to separate service components.

### Programming Languages & Runtimes

- [Binary Asset Embedding](https://awesome-repositories.com/f/programming-languages-runtimes/binary-asset-embedding.md) — Allows serving static files and templates directly from the compiled binary to remove filesystem dependencies.

### Security & Cryptography

- [Web Security](https://awesome-repositories.com/f/security-cryptography/application-and-system-security/web-security.md) — Implements security policies and protection mechanisms to safeguard web services against common attacks. ([source](https://github.com/kataras/iris/tree/main/middleware))
- [Cookie Management](https://awesome-repositories.com/f/security-cryptography/cookie-management.md) — Provides tools for managing HTTP cookie attributes, including domain and security flags. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))
- [CORS Policies](https://awesome-repositories.com/f/security-cryptography/cors-policies.md) — Allows configuration of allowed origins and resource sharing rules to control cross-origin access. ([source](https://github.com/kataras/iris/blob/main/iris_guide.go))
- [Traffic Encryption](https://awesome-repositories.com/f/security-cryptography/traffic-encryption.md) — Handles the configuration of TLS certificates to encrypt network communication. ([source](https://github.com/kataras/iris/tree/main/_examples))
- [User Authentication Systems](https://awesome-repositories.com/f/security-cryptography/user-authentication-systems.md) — Provides frameworks and mechanisms for verifying user identity and controlling access to protected routes. ([source](https://github.com/kataras/iris/tree/main/middleware))
- [Web Session Management](https://awesome-repositories.com/f/security-cryptography/web-session-management.md) — Includes session middleware to store and retrieve persistent client data across multiple requests. ([source](https://github.com/kataras/iris/blob/main/HISTORY.md))

### Part of an Awesome List

- [Language Toolkits](https://awesome-repositories.com/f/awesome-lists/devtools/language-toolkits.md) — Fast and efficient web framework for Go.
- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Modern, fast, and easy-to-learn HTTP/2 web framework.
