# squeaky-pl/japronto

**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/squeaky-pl-japronto).**

8,540 stars · 566 forks · C · MIT

## Links

- GitHub: https://github.com/squeaky-pl/japronto
- awesome-repositories: https://awesome-repositories.com/repository/squeaky-pl-japronto.md

## Description

Japronto is an asynchronous web framework and Python HTTP server toolkit. It functions as a multi-worker HTTP server and request router, utilizing non-blocking asynchronous handlers to manage high concurrency and throughput.

The project implements a master-multiworker forking model to distribute network traffic across multiple CPU cores. It incorporates a fast event loop and a specialized C-extension for high-speed HTTP request parsing, while supporting request pipelining over single TCP connections.

The framework covers a broad range of request handling capabilities, including URL pattern routing, request body processing for JSON and text, and client cookie retrieval. It includes mechanisms for mapping exceptions to custom responses, constructing HTTP messages, and managing persistent connections with an idle session reaper.

Development tools include a file-system-based automatic code reloading system, post-request callbacks, and the ability to extend request objects with custom properties.

## Tags

### Web Development

- [High-Performance HTTP Servers](https://awesome-repositories.com/f/web-development/high-performance-http-servers.md) — Implements a high-performance HTTP server optimized for low-latency and high-throughput using uvloop and picohttpparser.
- [HTTP Servers](https://awesome-repositories.com/f/web-development/http-servers.md) — Functions as a high-performance HTTP server engine designed to handle, route, and serve web traffic.
- [Asynchronous Request Handlers](https://awesome-repositories.com/f/web-development/asynchronous-request-handlers.md) — Implements non-blocking asynchronous handlers to maximize throughput during I/O-heavy web request processing.
- [Asynchronous Web Frameworks](https://awesome-repositories.com/f/web-development/asynchronous-web-frameworks.md) — An asynchronous web framework built on non-blocking execution models for high-concurrency request processing.
- [Multi-Process Request Handling](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling/multi-process-request-handling.md) — Distributes incoming HTTP traffic across multiple CPU cores using a multi-process worker forking model.
- [Request Parsing](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-request-handling/request-parsing.md) — Employs a specialized C-extension for high-speed parsing of raw socket data into structured HTTP requests.
- [URL Route Mapping](https://awesome-repositories.com/f/web-development/dynamic-content-resolution/url-route-mapping.md) — Implements a routing system that maps URL patterns and HTTP methods to specific handler functions. ([source](https://github.com/squeaky-pl/japronto/blob/master/README.md))
- [High-Performance Web Services](https://awesome-repositories.com/f/web-development/high-performance-web-services.md) — Optimized for high-throughput and low-latency web serving using uvloop and asynchronous request processing.
- [HTTP Routers](https://awesome-repositories.com/f/web-development/http-routers.md) — Includes a routing system that maps URL patterns and HTTP methods to specific handler functions.
- [Pre-Forking Servers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/http-servers/extensible-web-servers/pre-forking-servers.md) — Implements a pre-forking server model to handle concurrent requests by distributing traffic across multiple worker processes.
- [HTTP Response Builders](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/http-utilities/http-response-builders.md) — Ships a system for constructing HTTP responses with specified status codes, headers, and body content. ([source](https://github.com/squeaky-pl/japronto/blob/master/tutorial/5_response.md))
- [Exception Response Mapping](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/routing-request-handling/error-route-handling/exception-response-mapping.md) — Allows mapping specific server exceptions to custom HTTP responses instead of generic server errors. ([source](https://github.com/squeaky-pl/japronto/blob/master/tutorial/6_exceptions.md))
- [Request Body Handling](https://awesome-repositories.com/f/web-development/request-body-handling.md) — Provides capabilities to read incoming request bodies as raw bytes, plain text, form parameters, or JSON. ([source](https://github.com/squeaky-pl/japronto/blob/master/tutorial/4_request.md))

### Development Tools & Productivity

- [Event Loop Replacements](https://awesome-repositories.com/f/development-tools-productivity/event-loop-integrations/event-loop-replacements.md) — Integrates uvloop as a high-performance replacement for the standard asyncio event loop.
- [Rapid Prototyping Environments](https://awesome-repositories.com/f/development-tools-productivity/rapid-prototyping-environments.md) — Facilitates rapid iteration on web application logic through automatic code reloading and a lightweight setup.

### Networking & Communication

- [Asynchronous Server Development](https://awesome-repositories.com/f/networking-communication/asynchronous-server-development.md) — Provides a foundation for building high-concurrency web services using non-blocking I/O and asynchronous handlers.
- [Connection Management](https://awesome-repositories.com/f/networking-communication/connection-management.md) — Manages persistent TCP connections with an idle session reaper to automatically close inactive sessions. ([source](https://github.com/squeaky-pl/japronto/blob/master/README.md))

### Software Engineering & Architecture

- [Asynchronous Task Managers](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-managers.md) — Provides non-blocking execution of operations like database queries to prevent server thread stalling. ([source](https://github.com/squeaky-pl/japronto/blob/master/tutorial/2_async.md))
- [Master-Worker Process Models](https://awesome-repositories.com/f/software-engineering-architecture/distributed-coordination-systems/task-coordinations/master-worker-process-models.md) — Uses a master-multiworker forking model to distribute network traffic across multiple CPU cores.
- [HTTP Pipelining](https://awesome-repositories.com/f/software-engineering-architecture/command-pipelines/request-pipelines/http-pipelining.md) — Supports HTTP pipelining, allowing multiple requests to be sent over a single TCP connection without waiting for responses.
