Skip to content

PerfectlySoft/PerfectTemplate

Repository files navigation

PerfectTemplate 简体中文

Get Involed with Perfect!

Star Perfect On Github Stack Overflow Follow Perfect on Twitter Join the Perfect Slack

Swift 5.0 Platforms macOS | Linux License Apache PerfectlySoft Twitter Slack Status

Perfect Empty Starter Project

This repository holds a blank Perfect project which can be cloned to serve as a starter for new work. It builds with Swift Package Manager and produces a stand-alone HTTP executable.

Compatibility with Swift

The master branch of this project currently compiles with Xcode 10 and the Swift 4.1 or higher toolchain on Ubuntu.

Building & Running

The following will clone and build an empty starter project and launch the server on port 8181.

git clone https://github.com/PerfectlySoft/PerfectTemplate.git cd PerfectTemplate swift run 

You should see the following output:

[INFO] Starting HTTP server localhost on 0.0.0.0:8181 

This means the server is running and waiting for connections. Access http://localhost:8181/ to see the greeting. Hit control-c to terminate the server.

Starter Content

The template file contains a simple "hello, world!" request handler and shows how to serve static files, and compress outgoing content.

import PerfectHTTP import PerfectHTTPServer // An example request handler. // This 'handler' function can be referenced directly in the configuration below. func handler(request: HTTPRequest, response: HTTPResponse) {	// Respond with a simple message.	response.setHeader(.contentType, value: "text/html")	response.appendBody(string: "<html><title>Hello, world!</title><body>Hello, world!</body></html>")	// Ensure that response.completed() is called when your processing is done.	response.completed() } // Configure one server which: //	* Serves the hello world message at <host>:<port>/ //	* Serves static files out of the "./webroot" //	directory (which must be located in the current working directory). //	* Performs content compression on outgoing data when appropriate. var routes = Routes() routes.add(method: .get, uri: "/", handler: handler) routes.add(method: .get, uri: "/**", handler: StaticFileHandler(documentRoot: "./webroot", allowResponseFilters: true).handleRequest) try HTTPServer.launch(name: "localhost", port: 8181, routes: routes, responseFilters: [ (PerfectHTTPServer.HTTPFilter.contentCompression(data: [:]), HTTPFilterPriority.high)])

Further Information

For more information on the Perfect project, please visit perfect.org.

About

Empty Perfect Starter Project.

Topics

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
LICENSE.zh_CN

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages