Awesome
Nest - Swift Web Server Gateway Interface
Nest provides a minimal interface between web servers supporting Swift and web applications or frameworks. It’s designed to prevent tight coupling between web servers and web applications or frameworks. To enable the use of any framework or application with any server.
Quick Links
Current Status
The specification is currently a draft, there are a couple of planned changes in the issue tracker and we welcome anyone to contribute to help improve the specification before we release version 1.0.0. We provide a proposal system allowing you to propose changes via NEPs.
Rationale and Goals
The primary goal of Nest is to enable the use of any framework or application with any server. To prevent tight coupling between web servers and web applications or frameworks.
Nest provides a minimal interface supporting every feature in HTTP. It must be extremely simple, and easy to implement for both servers and web applications.
The interface must not make use any external frameworks and only depend on core Swift language features.
Example Application
A simple Hello World web application using the Nest interface:
func application(request:RequestType) -> ResponseType {
return Response(.Ok, body: "Hello World")
}
Testing
Along with providing a specification, Nest also provides a test suite to ensure that a server correctly follows the specification, and to aid development of web servers.
Implementations
Web Servers
- Currasow - Pre-forking worker model server.
- http4swift
- NestBox - Basic Server Implementation.
Web Frameworks
Other
- Inquiline - A standard implementation of RequestType and ResponseType.
- NestTest
- Padlock - Nest middleware to lockup your web application.
See Also
License
Nest is licensed under the BSD license. See LICENSE for more information.