Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yockow/swiftcgiresponder
I want to write CGI programs in Swift...
https://github.com/yockow/swiftcgiresponder
cgi swift
Last synced: 24 days ago
JSON representation
I want to write CGI programs in Swift...
- Host: GitHub
- URL: https://github.com/yockow/swiftcgiresponder
- Owner: YOCKOW
- License: mit
- Created: 2017-10-01T09:58:15.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2024-05-02T03:22:44.000Z (7 months ago)
- Last Synced: 2024-05-02T18:07:04.044Z (7 months ago)
- Topics: cgi, swift
- Language: Swift
- Size: 1000 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# What is `SwiftCGIResponder`?
`SwiftCGIResponder` will provide miscellaneous functions you may use when you write CGI programs in Swift.
It's an experimental library under development, and useless as of now.# Requirements
* Swift 5
* CoreFoundation
* Foundation
* macOS >= 10.15 or Linux
* HTTP server software (e.g. Apache or similar software)## Dependencies
![Dependencies](./dependencies.svg)
# Usage
```Swift
import CGIRespondervar responder = CGIResponder()
responder.status = .ok
responder.contentType = ContentType(pathExtension:.txt, parameters:["charset":"UTF-8"])!
responder.content = .string("Hello, World!\n", encoding:.utf8)
try! responder.respond()// -- Output --
// Status: 200 OK
// Content-Type: text/plain; charset=UTF-8
//
// Hello, World!
//
```You may see other samples in [Samples Directory](./Samples).
# How to install
You can use [Swift Package Manager](https://github.com/apple/swift-package-manager) easily to import `CGIResponder` to your project.
## Example of `Package.swift`
```Swift
// swift-tools-version:5.1
// The swift-tools-version declares the minimum version of Swift required to build this package.import PackageDescription
let package = Package(
name: "MyCGI",
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
.executable(name: "cgi1", targets: ["CGI1"]),
.executable(name: "cgi2", targets: ["CGI2"]),
.library(name: "CGIManager", type:.dynamic, targets: ["CGIManager"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
.package(url:"https://github.com/YOCKOW/SwiftNetworkGear.git", .branch("master")),
.package(url:"https://github.com/YOCKOW/SwiftCGIResponder.git", .branch("master")),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(name: "CGI1", dependencies:["SwiftCGIResponder", "SwiftNetworkGear"]),
.target(name: "CGI2", dependencies:["SwiftCGIResponder", "SwiftNetworkGear"]),
.target(name: "CGIManager", dependencies:["SwiftCGIResponder"]),
.testTarget(name: "CGIManagerTests", dependencies: ["CGIManager"]),
]
)
```# License
MIT License.
See "LICENSE.txt" for more information.