From 30cf7782e55e79498c66affe505044c6cbb0394f Mon Sep 17 00:00:00 2001 From: nickaroot Date: Wed, 8 Nov 2017 04:03:37 +0300 Subject: [PATCH 1/5] Initial Swift 4 Package Manager edits --- .DS_Store | Bin 0 -> 6148 bytes Package.resolved | 79 +++++++++++++++++++++++++++++++++++++++++++++++ Package.swift | 25 ++++++++++----- 3 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 .DS_Store create mode 100644 Package.resolved diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5ddd6b4f434c12e89144b0ef42b11d13c9ed8991 GIT binary patch literal 6148 zcmeHK%Wl&^6g|@h;sjOA0;yekgTx}L($dEQA(=E;M1rcq2o``+yD^Q0>#1S~t4)Kv z;U9oM;8XYlK7Py(kz0n(Sb?Bu-U&k*wkLI!GzY2q_-?+ceuRkTF`urLAh5!8Zy@uldm(#SxEBC^KWtstw)>1@vdL?%j&fnn4-`i~={Q zfLI@Fa)FMcw3>i~YLPcfzh`|({`fXk3Xv`HV zI+#9uF#TkvPbf@2o$hbTaxh1sX^jF#fuaJ->arpB|L)(<|3#9yG71<4{woDorQ>$m z^h$bfU3fXM*V^Pq Date: Wed, 8 Nov 2017 05:19:03 +0300 Subject: [PATCH 2/5] Russian language docs added Changed "swift build ..." to "swift run" --- .DS_Store | Bin 6148 -> 6148 bytes .gitignore | 1 + Package.resolved | 79 -------------------------- README.md | 5 +- README.ru_RU.md | 142 +++++++++++++++++++++++++++++++++++++++++++++++ README.zh_CN.md | 7 +-- 6 files changed, 148 insertions(+), 86 deletions(-) delete mode 100644 Package.resolved create mode 100644 README.ru_RU.md diff --git a/.DS_Store b/.DS_Store index 5ddd6b4f434c12e89144b0ef42b11d13c9ed8991..b3589009963b83577c136a30db4cf5d384b5a9cb 100644 GIT binary patch delta 112 zcmZoMXfc@J&&ahgU^g=(*JK`+Y*PV-0ER?{WQJ@Yna+^PpvO=IB#RmH8FCoPfUFeH zoc!dZoctsP1_l8J21aopJ!5hXOFMrNLn%W%Ll8qKP){yH%47pp`N@x2Vi;F$c3|~n K+RV=JmmdJMX&R9L delta 41 xcmZoMXfc@J&&aVcU^g=($7CLs?8)0%Y9<%5`Y>8=-pA_6G_j#>Gdss$egG9O4WIx3 diff --git a/.gitignore b/.gitignore index cfe11a4..bf60873 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ ## Build generated build/ DerivedData +Package.resolved ## Various settings *.pbxuser diff --git a/Package.resolved b/Package.resolved deleted file mode 100644 index bd4d2b6..0000000 --- a/Package.resolved +++ /dev/null @@ -1,79 +0,0 @@ -{ - "object": { - "pins": [ - { - "package": "COpenSSL", - "repositoryURL": "https://github.com/PerfectlySoft/Perfect-COpenSSL.git", - "state": { - "branch": null, - "revision": "aa39c5503945abf36f6d8d0b632b6188288f999f", - "version": "3.1.1" - } - }, - { - "package": "PerfectCZlib", - "repositoryURL": "https://github.com/PerfectlySoft/Perfect-CZlib-src.git", - "state": { - "branch": null, - "revision": "2002034d47e9d57a695fb33ad2e09f136868b406", - "version": "0.0.3" - } - }, - { - "package": "PerfectCrypto", - "repositoryURL": "https://github.com/PerfectlySoft/Perfect-Crypto.git", - "state": { - "branch": null, - "revision": "a440ab1dd8d3d87103312f1328bfb1648e7045e3", - "version": "3.0.2" - } - }, - { - "package": "PerfectHTTP", - "repositoryURL": "https://github.com/PerfectlySoft/Perfect-HTTP.git", - "state": { - "branch": null, - "revision": "605b169a0527c3169cbf672a75efeb5695f5d471", - "version": "3.0.1" - } - }, - { - "package": "PerfectHTTPServer", - "repositoryURL": "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", - "state": { - "branch": null, - "revision": "c7ca425d062dca86eab3d6d14e4d91f6dc222db7", - "version": "3.0.3" - } - }, - { - "package": "PerfectLib", - "repositoryURL": "https://github.com/PerfectlySoft/PerfectLib.git", - "state": { - "branch": null, - "revision": "fc5186e209f0621fe50390ec1fb02bd9d3ef0e57", - "version": "3.0.2" - } - }, - { - "package": "PerfectNet", - "repositoryURL": "https://github.com/PerfectlySoft/Perfect-Net.git", - "state": { - "branch": null, - "revision": "5e137023e0373b3bdd46a5c80c3ec868fd1c383d", - "version": "3.0.0" - } - }, - { - "package": "PerfectThread", - "repositoryURL": "https://github.com/PerfectlySoft/Perfect-Thread.git", - "state": { - "branch": null, - "revision": "1846390a47bfe0c5263bb70ba318b2bbe751ac95", - "version": "3.0.2" - } - } - ] - }, - "version": 1 -} diff --git a/README.md b/README.md index 5878a8a..5d21bad 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PerfectTemplate [简体中文](README.zh_CN.md) +# PerfectTemplate [简体中文](README.zh_CN.md) [Русский](README.ru_RU.md)

@@ -54,8 +54,7 @@ The following will clone and build an empty starter project and launch the serve ``` git clone https://github.com/PerfectlySoft/PerfectTemplate.git cd PerfectTemplate -swift build -.build/debug/PerfectTemplate +swift run ``` You should see the following output: diff --git a/README.ru_RU.md b/README.ru_RU.md new file mode 100644 index 0000000..1509d5f --- /dev/null +++ b/README.ru_RU.md @@ -0,0 +1,142 @@ +# PerfectTemplate [English](https://github.com/PerfectlySoft/PerfectTemplate) [简体中文](README.zh_CN.md) + +

+ + Get Involed with Perfect! + +

+ +

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

+ +

+ + Swift 4.0 + + + Platforms OS X | Linux + + + License Apache + + + PerfectlySoft Twitter + + + Slack Status + +

+ +Чистый начальный проект Perfect + +Данный репозиторий содержит чистый проект Perfect, который можно клонировать и использовать при начале новой работы. Он собирается с помощью Swift Package Manager и запускает автономный HTTP. + +## Совместимость со Swift + +Ветка master этого проекта компилируется в **Xcode 9.1** и в **Swift 4.0.2** на Ubuntu. + +## Сборка и Запуск + +Клонирование и сборка чистого начального проекта, а также запуск сервера на порте 8080 и 8181. + +``` +git clone https://github.com/PerfectlySoft/PerfectTemplate.git +cd PerfectTemplate +swift run +``` + +После этого должно вывестись: + +``` +[INFO] Starting HTTP server localhost on 0.0.0.0:8181 +``` + +Это значит, что сервер запущен и ожидает соединений. Перейдите на [http://localhost:8181/](http://127.0.0.1:8181/), чтобы увидеть приветствие. Нажмите control-c для остановки сервера. + +## Начальное содержание + +Файл примера содержит простой обработчик запросов "hello, world!" и показывает, как хранить статические файлы, сжимать исходящий контент и запускать сверх одного сервера за раз. + +```swift +import PerfectLib +import PerfectHTTP +import PerfectHTTPServer + +// Пример обработчика запроса. +// Указанная функция 'handler' может быть указана непосредственно в конфигурации ниже. +func handler(data: [String:Any]) throws -> RequestHandler { + return { + request, response in + // Ответ простым сообщением. + response.setHeader(.contentType, value: "text/html") + response.appendBody(string: "Hello, world!Hello, world!") + // Убедитесь, что вызывается response.completed() в конце функции обработчика. + response.completed() + } +} + +// Конфигурация для примера сервера. +// Данный пример конфигурации показывает, как запускать сервер +// используя dictionary с ней. + + +let confData = [ + "servers": [ + // Конфигурация для одного сервера, который: + // * Хранит сообщение hello world на :/ + // * Хранит статические файлы в "./webroot" + // директории (которая должна быть размещена в данной рабочей директории). + // * Сжимает исходящие данные по необходимости. + [ + "name":"localhost", + "port":8181, + "routes":[ + ["method":"get", "uri":"/", "handler":handler], + ["method":"get", "uri":"/**", "handler":PerfectHTTPServer.HTTPHandler.staticFiles, + "documentRoot":"./webroot", + "allowResponseFilters":true] + ], + "filters":[ + [ + "type":"response", + "priority":"high", + "name":PerfectHTTPServer.HTTPFilter.contentCompression, + ] + ] + ] + ] +] + +do { + // Запуск серверов на основе конфигурации. + try HTTPServer.launch(configurationData: confData) +} catch { + fatalError("\(error)") // fatal error при запуске одного из серверов +} +``` + + +## Проблемы + +Мы переходим к использованию JIRA для всех багов и решения проблем, поэтому GitHub Issues отключены. + +Если вы нашли ошибку, баг, или у вас есть любое другое полезное предложение по документации, пожалуйста, перейдите на [http://jira.perfect.org:8080/servicedesk/customer/portal/1](http://jira.perfect.org:8080/servicedesk/customer/portal/1) и напишите об этом. + +Весь список известных проблем находится на [http://jira.perfect.org:8080/projects/ISS/issues](http://jira.perfect.org:8080/projects/ISS/issues) + + + +## Дальнейшая информации +Для большей информации о проекте Perfect, пожалуйста, посетите [perfect.org](http://perfect.org). diff --git a/README.zh_CN.md b/README.zh_CN.md index a87a930..ea2980c 100644 --- a/README.zh_CN.md +++ b/README.zh_CN.md @@ -1,4 +1,4 @@ -# PerfectTemplate [English](https://github.com/PerfectlySoft/PerfectTemplate) +# PerfectTemplate [English](https://github.com/PerfectlySoft/PerfectTemplate) [Русский](README.ru_RU.md)

@@ -45,7 +45,7 @@ Perfect Web服务器项目模板 ###Swift兼容性 -本项目目前使用Swift 4.0工具链(Ubuntu)或Xcode 9编译。 +本项目目前使用Swift 4.0.2工具链(Ubuntu)或Xcode 9.1编译。 ## 编译运行 @@ -54,8 +54,7 @@ Perfect Web服务器项目模板 ``` git clone https://github.com/PerfectlySoft/PerfectTemplate.git cd PerfectTemplate -swift build -.build/debug/PerfectTemplate +swift run ``` 如果没有问题,输出应该看起来像是这样: From e55e8a04c112638767c2187e9d5777d8002ebb91 Mon Sep 17 00:00:00 2001 From: nickaroot Date: Wed, 8 Nov 2017 05:30:09 +0300 Subject: [PATCH 3/5] Russian docs corrected --- README.ru_RU.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.ru_RU.md b/README.ru_RU.md index 1509d5f..e86c8cf 100644 --- a/README.ru_RU.md +++ b/README.ru_RU.md @@ -75,7 +75,7 @@ import PerfectHTTP import PerfectHTTPServer // Пример обработчика запроса. -// Указанная функция 'handler' может быть указана непосредственно в конфигурации ниже. +// Функция 'handler' будет указана непосредственно в конфигурации ниже. func handler(data: [String:Any]) throws -> RequestHandler { return { request, response in @@ -87,7 +87,7 @@ func handler(data: [String:Any]) throws -> RequestHandler { } } -// Конфигурация для примера сервера. +// Конфигурация сервера-примера. // Данный пример конфигурации показывает, как запускать сервер // используя dictionary с ней. @@ -96,9 +96,9 @@ let confData = [ "servers": [ // Конфигурация для одного сервера, который: // * Хранит сообщение hello world на :/ - // * Хранит статические файлы в "./webroot" - // директории (которая должна быть размещена в данной рабочей директории). - // * Сжимает исходящие данные по необходимости. + // * Хранит статические файлы в директории "./webroot" + // (которая должна быть размещена в данной рабочей директории). + // * По необходимости сжимает исходящие данные. [ "name":"localhost", "port":8181, @@ -138,5 +138,5 @@ do { -## Дальнейшая информации +## Дальнейшая информация Для большей информации о проекте Perfect, пожалуйста, посетите [perfect.org](http://perfect.org). From 2705ed855d86cd4d88597716395315044341d2b2 Mon Sep 17 00:00:00 2001 From: nickaroot Date: Wed, 8 Nov 2017 05:45:48 +0300 Subject: [PATCH 4/5] Ignore .DS_Store --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index bf60873..f66e525 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,5 @@ PerfectTemplate.xcodeproj Tests/ webroot/ Package.pins + +.DS_Store From 5fa4a04deb8383244402a85fcf814a0c0bd6a4e7 Mon Sep 17 00:00:00 2001 From: nickaroot Date: Wed, 8 Nov 2017 05:47:13 +0300 Subject: [PATCH 5/5] mend --- .DS_Store | Bin 6148 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index b3589009963b83577c136a30db4cf5d384b5a9cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK%Wl&^6ur|1;sjOA0;yekgTx}L($dEQA(=E;M1rcSc`N{>b`u(_uBWn{Mr|6D z4gUcA0iVJb@F9EvoOvXQogj6E5X_bCoa>o;d_BkVjE9I=z2Dg+st}O{7g#8xSzuyZ z_?#{29>HVs9tY%7vla3aKb*@p9Yz78z~82T_;!o*j9Ro$O`7?BxsMUCEIfuk{3#6) z(MmR(Ht3pq)CT`Refd-7*BrA#hvd--ouNIYE|@XeggAwCiKvt1vo-KPWh&?S2@NQq z_mnPR&OURAjxf8Y)S&0U4LYBz^)dIXt2stYea!KQUM^xwjb@)T&z>r@h|PZFY8SDJ za@32V74*r@jfASRwQ|}1Ai3~E`3}DM7h#a3wc2;Kv|PAzw`f^qtGrTv=l1x(O}(_A z)V=tPxH|OGp0DE>;0E9=AI?#@=#-rCt7Rqf&4Uae|xKiVCQO4izg%_ptn^Q-IO&FI5tObN!YiAY=3 zIDsz+a?`wY<0$0ODMlu&Nw&dTDxih4?%guqq!|T_0{@Q!VtugT0v(NGg>vaYBaZ;U z0=lIk7C#MwV{3FYjum1A#uOE(s7xO*n4+WK)_IP`u|h>BrVk%XS7!Qz!en*a-