30 open-source projects similar to go-chi/chi, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Chi alternative.
This project is a request router and web framework for the Go programming language. It provides a toolkit for matching incoming HTTP network requests to specific handler functions by evaluating criteria such as URL paths, request methods, headers, and hostnames. The framework distinguishes itself through its flexible matching capabilities, which include support for regular expressions and dynamic variable extraction from URL segments. It allows developers to organize routes into logical hierarchies, share common path prefixes, and maintain a central registry of named routes to facilitate prog
Connect is an HTTP middleware framework and routing library designed as a wrapper for the Node.js HTTP server. It serves as a middleware composition engine that allows for the creation of chains of request handlers to process HTTP traffic and manage application errors. The framework enables the orchestration of pluggable functions to execute security, logic, and routing rules in a specific sequence. It provides the ability to match incoming request URLs to specific logic handlers based on path prefixes. The system covers broader capabilities including centralized error handling to ensure con
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,
httprouter is a high-performance HTTP request router for Go that maps incoming network requests to specific handler functions using a radix tree. It functions as a request dispatcher and path parameter parser, organizing URL paths in a tree structure to ensure efficient lookups. The router specializes in capturing dynamic segments and catch-all wildcards from URL paths to pass directly into request handlers. It implements method-specific routing and automatically manages responses for unsupported HTTP methods. The library covers broader capabilities including request normalization through tr
Compojure is a routing library for Ring web applications that maps HTTP requests to handler functions using composable route definitions. It serves as a middleware component for the Ring ecosystem, directing web traffic to specific application logic by matching incoming request methods and paths against defined URI patterns. The router utilizes a modular architecture that allows related endpoints to be grouped into decoupled modules. This composition model enables the construction of larger applications from smaller, independent routing contexts. The library provides capabilities for process
Martini is a web framework for the Go programming language that provides a toolkit for building web applications. It functions as a routing engine and an HTTP middleware pipeline to map network requests to specific handler functions. The framework is distinguished by its dependency injection system, which automatically resolves and provides requested service types as arguments to handler functions. This allows for the decoupling of business logic from infrastructure by matching requested types against a registry of available services. The project covers a broad range of web capabilities, inc
Fiber is a high-performance web framework designed for building scalable HTTP services with minimal memory overhead. It provides a comprehensive runtime environment for managing the full request lifecycle, utilizing an optimized radix tree for high-speed route matching and an object pooling system to reduce garbage collection pressure during traffic processing. The framework distinguishes itself through its multi-process architecture, which supports prefork socket reuse to distribute incoming traffic across all available CPU cores. It offers a modular approach to application development, feat
Crow is a minimalist C++ micro web framework designed for building fast web servers and REST APIs. It provides a lightweight toolkit for web development in C++, offering core routing and request handling capabilities. The framework includes a built-in JSON parser for converting strings into structured data and an HTML template engine for generating dynamic web pages on the server. It also functions as a WebSocket server library to enable bidirectional, real-time communication between servers and web clients. Additional capabilities include a middleware-based request pipeline for executing sh
Koa is a lightweight web framework for Node.js designed for building HTTP applications and servers. It functions as an asynchronous middleware engine that processes network requests through a sequence of functions sharing a common context. The framework distinguishes itself by using an onion-model middleware stack and promise-based flow control. This architecture allows requests to flow downstream and responses to flow back upstream through the same chain, enabling non-blocking request cycles and a modular approach to handling network traffic. The system provides high-level capabilities for
Javalin is a lightweight web framework for Java and Kotlin designed for building REST APIs and web applications. It functions as an embedded Jetty web server, allowing applications to run as standalone processes without the need for an external servlet container. The project provides specialized frameworks for diverse communication patterns, including a REST API framework with automatic OpenAPI schema generation, a GraphQL API framework with query and mutation resolvers, and a WebSocket server for bidirectional real-time communication. It also includes a dedicated framework for pushing real-t
Echo is a high-performance, lightweight web framework for Go designed for building scalable RESTful APIs and web services. It provides a centralized environment for mapping network requests to handler functions, utilizing a fast radix-tree routing engine to ensure efficient request dispatching. The framework is built around a modular, middleware-centric pipeline that allows developers to execute reusable logic for cross-cutting concerns like authentication, logging, and security across the entire application. What distinguishes Echo is its focus on developer productivity through structured da
Polka is a minimalist Node.js web framework and HTTP routing engine. It provides a small-footprint server implementation designed for low overhead, mapping URL paths and HTTP methods to specific handler functions. The project utilizes a middleware-based architecture, processing requests through a sequence of functions to handle tasks such as logging, authorization, and data modification. It allows for the organization of these functions into global and path-filtered groups to control execution order. The framework covers core web capabilities including route parameter extraction, request URL
Huma is an OpenAPI REST framework for Go designed for building HTTP services with automatic OpenAPI 3.1 specification generation and JSON Schema validation. It serves as a toolkit for developing REST and RPC APIs with typed inputs and outputs, deriving interactive documentation directly from the source code. The framework distinguishes itself by automating the synchronization between implementation and documentation. It uses a content-negotiation engine to manage multiple serialization formats via client headers and employs a JSON Schema input validator to automatically verify request paramet
Plug is a specification and set of primitives for building composable middleware pipelines in Elixir web applications. It provides a system for managing HTTP request pipelines and a routing engine that dispatches incoming requests to specific handlers based on methods and URL patterns. The project enables the creation of interchangeable web middleware for tasks such as authentication, logging, and session management. It also includes mechanisms for upgrading standard HTTP requests to full-duplex WebSocket connections. The capability surface covers request body parsing, static asset delivery,
Oak is a cross-runtime HTTP middleware framework and web server designed to operate across Deno, Node.js, Bun, and Cloudflare Workers. It provides a unified system for building APIs and web servers using a sequential chain of middleware functions and a hierarchical routing engine that maps URL paths to handlers via a nested tree structure. The framework includes a runtime-agnostic serverless adapter that translates diverse cloud provider events into a standard request and response interface. It also features a dedicated WebSocket server implementation for bidirectional real-time communication
Litestar is a high-performance Python ASGI web framework designed for building asynchronous APIs and web services. It functions as a type-safe toolkit that leverages Python type hints to provide automatic request validation and response serialization, while natively generating interactive API documentation based on the OpenAPI specification. The framework is distinguished by its integrated dependency injection system, which manages shared resources and resolves complex nested service chains directly within request handlers. It further organizes API development through class-based controllers
Drogon is a high-performance C++ HTTP web framework and asynchronous web server designed for building web applications and REST APIs. It utilizes an event-driven, non-blocking architecture to handle concurrent HTTP and WebSocket connections, and it implements a model-view-controller structure to separate business logic from presentation. The framework includes an integrated C++ object-relational mapping system and database client for performing asynchronous operations with relational databases and Redis key-value stores. It supports real-time, full-duplex communication via WebSockets and prov
Grape is a RESTful web service framework for Ruby designed for building structured APIs. It provides a declarative syntax for routing and parameter validation, allowing developers to map HTTP verbs to logic through a domain specific language. The framework is distinguished by its built-in support for service versioning, which can be managed via URL paths, custom headers, or request parameters. It also features a modular architecture that allows large services to be constructed by nesting smaller API definitions. The project covers comprehensive API lifecycle capabilities, including schema-dr
ThinkJS is a server-side web framework designed for building applications on the Node.js runtime. It serves as a development platform that supports TypeScript and the latest ECMAScript standards to create stable and maintainable backend services. The framework employs a layered application architecture that separates concerns into controller, service, and model tiers. It utilizes a dependency-injected service model to manage singleton services and a middleware-based system for request handling and route dispatching. Development is supported by a build pipeline that transpiles modern JavaScri
Bottle is a lightweight Python web micro-framework and template engine. It functions as a WSGI web framework that routes HTTP requests to Python functions to generate dynamic content. The framework is distributed as a single Python file with no external dependencies. This minimalist distribution model allows for rapid application prototyping and the creation of web services with a small footprint. The project provides capabilities for dynamic request routing, REST API development, and dynamic HTML rendering. It includes a built-in HTTP development server for web application hosting and a plu
Vendure is a Node.js e-commerce engine and headless commerce framework built with NestJS and TypeScript. It serves as a multi-channel commerce platform that manages product catalogs, orders, and customers via a strongly typed GraphQL API. The platform is distinguished by its highly extensible architecture, featuring a customizable administrative dashboard where developers can inject custom React components and entity views. It supports multi-channel commerce, allowing the isolation of products, currencies, and regional catalogs from a single unified backend. The engine covers a broad range o
Lura is an API gateway and traffic router that directs network requests to backend services using a configurable pipeline of processing steps. It functions as a backend load balancer and a request middleware engine designed to validate, modify, and transform incoming requests and responses. The system specializes in API response aggregation, allowing it to execute concurrent requests to multiple backend services and merge the results into a single unified output. This includes the ability to perform dynamic response mapping by renaming fields and filtering data to optimize the final client pa
Cowboy is a high-performance HTTP server for Erlang and OTP. It is designed to handle web traffic with low memory usage and can be used as a standalone server or as an embedded networking library integrated directly into an existing application. The project implements modern transport protocols, including HTTP/3, QUIC, and WebTransport, to enable faster connections and bidirectional data streaming. It also functions as a real-time communication server supporting Server-Sent Events for pushing asynchronous updates to clients. Broad capabilities include path and content-type based request rout
This project provides a routing library for the Koa web framework, designed to map incoming HTTP requests to specific handler functions. It serves as a core infrastructure for organizing application logic into modular endpoints, utilizing declarative route registration and middleware-based request pipelines to process traffic. The library distinguishes itself through its support for hierarchical router nesting, which allows for the creation of scalable, modular application architectures and distinct API versioning. It offers granular control over request matching, including support for regula
Express is a minimalist web server framework that provides a foundational runtime environment for building backend web APIs and applications. It operates through a central application object that orchestrates the entire request-response lifecycle, allowing developers to define routes, manage server settings, and process incoming HTTP traffic. The framework is defined by its middleware-based routing engine, which sequences request handlers and logic blocks to process traffic based on path patterns and HTTP methods. This architecture supports a highly modular approach, enabling the creation of
This project is an educational framework designed to teach the fundamentals of building core distributed systems and web services from scratch in Go. It provides a collection of modular implementations that demonstrate how to construct essential infrastructure components, including web servers, remote procedure call systems, distributed caches, and database abstraction layers. The framework distinguishes itself by focusing on the internal mechanics of these systems rather than providing a high-level abstraction for production use. It covers the implementation of complex architectural patterns
web.py is a minimal Python web framework that provides the core components needed to build web applications: URL routing, template rendering, database access, form handling, and session management. The framework uses a convention-based approach where URL patterns are automatically mapped to handler classes based on their names, eliminating the need for manual route configuration. It exposes applications as WSGI callables, making them deployable with any WSGI-compliant server. The framework distinguishes itself through its metaclass-driven auto-discovery system, which automatically registers h
Connexion is a specification-driven framework for building APIs that automatically maps OpenAPI specifications to application logic. It uses these specifications to automate routing, request validation, and response serialization, linking API operations to backend handler functions via operation IDs. The project differentiates itself by providing a schema-driven mock server that simulates API behavior using example responses from the specification without requiring backend logic. It also includes a dynamic documentation hosting system that translates the API specification into a live interact
Filament is a full-stack framework for building administrative panels and management interfaces within the Laravel ecosystem. It provides a declarative, component-based architecture that allows developers to construct complex, data-driven applications using server-side configuration objects rather than manual HTML. By inspecting database model structures and relationships, the framework automates the generation of CRUD interfaces, forms, and data tables, significantly reducing boilerplate code. The project distinguishes itself through a highly modular and extensible design that supports custo
FastMCP is a Python framework designed for building servers that expose functions, resources, and prompts to AI models using the Model Context Protocol. It simplifies the development process by automatically deriving tool metadata, input schemas, and documentation directly from Python function signatures and type hints. The framework provides a unified container for managing these components, allowing developers to build modular applications that integrate seamlessly with AI assistants. The project distinguishes itself through its support for interactive, server-defined user interface compone