A lightweight, GCD-based HTTP server for embedding in iOS, macOS, and tvOS apps, with built-in WebDAV and file uploader.
GCDWebServer is a lightweight, GCD-based HTTP server designed to be embedded in iOS, macOS, and tvOS applications. It provides a full-featured HTTP 1.1 server with support for asynchronous request handling, file uploads via a web interface, and WebDAV server capabilities, all without external dependencies.
Apple platform developers (iOS, macOS, tvOS) who need to embed an HTTP server within their apps for features like local file serving, web-based configuration, or data transfer over WiFi.
Developers choose GCDWebServer for its clean, minimal API, excellent performance due to GCD integration, and comprehensive feature set including WebDAV and uploader extensions, all while being dependency-free and BSD-licensed.
The #1 HTTP server for iOS, macOS & tvOS (also includes web based uploader & WebDAV server)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages Grand Central Dispatch for event-driven design, ensuring high concurrency and optimal performance on Apple platforms, as highlighted in the architecture section.
Uses only four core classes (server, connection, request, response), making it straightforward to learn and integrate, with well-documented headers.
Includes GCDWebUploader for web-based uploads/downloads and GCDWebDAVServer for class 1 WebDAV support, providing ready-to-use solutions without extra dependencies.
Streams large HTTP request/response bodies to disk to minimize memory usage, crucial for resource-constrained iOS devices, as noted in the features.
Automatically manages transitions between foreground, background, and suspended app states, simplifying development for mobile apps.
Explicitly listed as unsupported in the README, which limits its use for secure communications and is a significant drawback for modern applications.
Only compatible with macOS, iOS, and tvOS, making it unsuitable for cross-platform development or server deployments on other operating systems.
Does not support HTTP keep-alive, which can hinder performance in scenarios with multiple sequential requests, as admitted in the README's unsupported features.
While asynchronous handlers are supported, the README warns about thread-safety and re-entrancy issues, adding complexity for developers unfamiliar with GCD.