phrasing
[swcgi.git] / README.md
blob025feecc9a73bd6aa240c64e1962c45bca86c3ac
1 # SWSGI
3 A set of tools and building blocks for responding to HTTP requests from Swift.
5 Roughly based on SWSGI from [envoy/Embassy]( 
6 https://github.com/envoy/Embassy#whats-swsgi-swift-web-server-gateway-interface)
8 ## Next Steps
9 [] unify SWNIOServer with the swsgi data structures
10 [] add more swsgi data structures based on golang and wsgi
11 [] swcgi connect it up
13 # Target Layout
15 ## swsgi
17 The main building blocks for generically refering to HTTP requests/responses (and their 
18 components). Additionally defines the swsgi/app type.
20 Roughly based on SWSGI from [envoy/Embassy]( 
21 https://github.com/envoy/Embassy#whats-swsgi-swift-web-server-gateway-interface)
22 with additional types and inspiration from [allevato/SwiftCGI](https://github.com/allevato/SwiftCGI/)
23 and
24 [Alamofire](https://github.com/Alamofire/Alamofire).
26 ## swcgi
28 Tools for writing CGI binaries (that respond to a single request via stdin/stdout and
29 environment variables). Optionally hosting a SWSGI app.
31 This currently builds as an executable, but someday should probably be a library with
32 a sample executable. 
34 ## swnioserver
36 Uses Swift-NIO to run a (persistent) HTTP server that stays resident and responds
37 to many requests. Optionally hosting a SWSGI app.
39 Based on the uExpress exampel at https://www.alwaysrightinstitute.com/microexpress-nio2/
40 by https://github.com/helje5.
42 # Project TODOs (non-functional-reqs)
43 [] Setup swift-doc
44 [] Setup swift-format auto
45 [] Setup test harness