├── .gitignore ├── LICENSE ├── Package.swift ├── README.md ├── Sources ├── Demo │ └── main.swift └── SwiftCGI │ ├── BufferingInputStream.swift │ ├── BufferingOutputStream.swift │ ├── CGIHTTPRequest.swift │ ├── CGIHTTPResponse.swift │ ├── CGIServer.swift │ ├── CollectionType+IndexOfCollection.swift │ ├── Condition.swift │ ├── FCGIBeginRequestFlags.swift │ ├── FCGIBeginRequestRole.swift │ ├── FCGIError.swift │ ├── FCGINameValueSerialization.swift │ ├── FCGIProtocolStatus.swift │ ├── FCGIRecord.swift │ ├── FCGIRecordBody.swift │ ├── FCGIRecordInputStream.swift │ ├── FCGIRecordOutputStream.swift │ ├── FCGIRequestHandler.swift │ ├── FCGIServer.swift │ ├── FileInputStream.swift │ ├── FileOutputStream.swift │ ├── HTTPCookie.swift │ ├── HTTPHeaders+CGIEnvironment.swift │ ├── HTTPHeaders.swift │ ├── HTTPMethod.swift │ ├── HTTPRequest.swift │ ├── HTTPResponse.swift │ ├── HTTPStatus+Predefined.swift │ ├── HTTPStatus.swift │ ├── Hasher.swift │ ├── IOError.swift │ ├── InputStream+Primitives.swift │ ├── InputStream+Strings.swift │ ├── InputStream.swift │ ├── OutputStream+Primitives.swift │ ├── OutputStream+Strings.swift │ ├── OutputStream.swift │ ├── RecursiveLock.swift │ ├── SeekOrigin.swift │ ├── Server.swift │ ├── ServerProtocol.swift │ ├── String+URLEncoding.swift │ ├── StringTokenizer.swift │ ├── Thread.swift │ ├── WriteNotifyingOutputStream.swift │ └── WriteNotifyingOutputStreamDelegate.swift └── Tests └── SwiftCGI ├── BufferingInputStreamTest.swift ├── BufferingOutputStreamTest.swift ├── CGIHTTPRequestTest.swift ├── CGIHTTPResponseTest.swift ├── CGIServerTest.swift ├── CollectionType+IndexOfCollectionTest.swift ├── FCGINameValueSerializationTest.swift ├── FCGIRecordBodyTest.swift ├── FCGIRecordInputStreamTest.swift ├── FCGIRecordOutputStreamTest.swift ├── FCGIRecordTest.swift ├── FCGIRequestHandlerTest.swift ├── HTTPCookieTest.swift ├── HTTPHeaders+CGIEnvironmentTest.swift ├── HTTPHeadersTest.swift ├── HTTPMethodTest.swift ├── HTTPStatusTest.swift ├── HasherTest.swift ├── InputStream+PrimitivesTest.swift ├── InputStream+StringsTest.swift ├── OutputStream+PrimitivesTest.swift ├── OutputStream+StringsTest.swift ├── String+URLEncodingTest.swift ├── StringTokenizerTest.swift ├── TestInputStream.swift ├── TestOutputStream.swift ├── WriteNotifyingOutputStreamTest.swift └── XCTestErrorAssertions.swift /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/README.md -------------------------------------------------------------------------------- /Sources/Demo/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/Demo/main.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/BufferingInputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/BufferingInputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/BufferingOutputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/BufferingOutputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/CGIHTTPRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/CGIHTTPRequest.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/CGIHTTPResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/CGIHTTPResponse.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/CGIServer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/CGIServer.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/CollectionType+IndexOfCollection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/CollectionType+IndexOfCollection.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/Condition.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/Condition.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIBeginRequestFlags.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIBeginRequestFlags.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIBeginRequestRole.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIBeginRequestRole.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIError.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGINameValueSerialization.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGINameValueSerialization.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIProtocolStatus.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIProtocolStatus.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIRecord.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIRecord.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIRecordBody.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIRecordBody.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIRecordInputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIRecordInputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIRecordOutputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIRecordOutputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIRequestHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIRequestHandler.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FCGIServer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FCGIServer.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FileInputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FileInputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/FileOutputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/FileOutputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPCookie.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPCookie.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPHeaders+CGIEnvironment.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPHeaders+CGIEnvironment.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPHeaders.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPHeaders.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPMethod.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPMethod.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPRequest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPRequest.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPResponse.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPStatus+Predefined.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPStatus+Predefined.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/HTTPStatus.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/HTTPStatus.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/Hasher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/Hasher.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/IOError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/IOError.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/InputStream+Primitives.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/InputStream+Primitives.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/InputStream+Strings.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/InputStream+Strings.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/InputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/InputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/OutputStream+Primitives.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/OutputStream+Primitives.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/OutputStream+Strings.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/OutputStream+Strings.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/OutputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/OutputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/RecursiveLock.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/RecursiveLock.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/SeekOrigin.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/SeekOrigin.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/Server.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/Server.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/ServerProtocol.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/ServerProtocol.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/String+URLEncoding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/String+URLEncoding.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/StringTokenizer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/StringTokenizer.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/Thread.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/Thread.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/WriteNotifyingOutputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/WriteNotifyingOutputStream.swift -------------------------------------------------------------------------------- /Sources/SwiftCGI/WriteNotifyingOutputStreamDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Sources/SwiftCGI/WriteNotifyingOutputStreamDelegate.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/BufferingInputStreamTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/BufferingInputStreamTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/BufferingOutputStreamTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/BufferingOutputStreamTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/CGIHTTPRequestTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/CGIHTTPRequestTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/CGIHTTPResponseTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/CGIHTTPResponseTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/CGIServerTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/CGIServerTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/CollectionType+IndexOfCollectionTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/CollectionType+IndexOfCollectionTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/FCGINameValueSerializationTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/FCGINameValueSerializationTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/FCGIRecordBodyTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/FCGIRecordBodyTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/FCGIRecordInputStreamTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/FCGIRecordInputStreamTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/FCGIRecordOutputStreamTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/FCGIRecordOutputStreamTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/FCGIRecordTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/FCGIRecordTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/FCGIRequestHandlerTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/FCGIRequestHandlerTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/HTTPCookieTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/HTTPCookieTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/HTTPHeaders+CGIEnvironmentTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/HTTPHeaders+CGIEnvironmentTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/HTTPHeadersTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/HTTPHeadersTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/HTTPMethodTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/HTTPMethodTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/HTTPStatusTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/HTTPStatusTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/HasherTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/HasherTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/InputStream+PrimitivesTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/InputStream+PrimitivesTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/InputStream+StringsTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/InputStream+StringsTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/OutputStream+PrimitivesTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/OutputStream+PrimitivesTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/OutputStream+StringsTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/OutputStream+StringsTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/String+URLEncodingTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/String+URLEncodingTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/StringTokenizerTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/StringTokenizerTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/TestInputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/TestInputStream.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/TestOutputStream.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/TestOutputStream.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/WriteNotifyingOutputStreamTest.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/WriteNotifyingOutputStreamTest.swift -------------------------------------------------------------------------------- /Tests/SwiftCGI/XCTestErrorAssertions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/allevato/SwiftCGI/HEAD/Tests/SwiftCGI/XCTestErrorAssertions.swift --------------------------------------------------------------------------------