Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated converter for complex data #219

Open
wants to merge 697 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
697 commits
Select commit Hold shift + click to select a range
faafc71
Remove Handler protocols in favour of more simplified structure
kjessup Apr 21, 2016
cb20e3a
Updated Mustache handling
kjessup Apr 21, 2016
c35bfea
Updated for unified Swift 2.2 and 3.0
kjessup Apr 23, 2016
c6f0826
Corrected the UnsafeMutablePointer compatability
kjessup Apr 23, 2016
d4ec7cc
compilation against the latest May toolchain + 2.2
kjessup May 14, 2016
d48189d
compilation against the latest May toolchain + 2.2
kjessup May 14, 2016
69dc46f
Handling high&low surrogate pairs.
ShaneQi May 14, 2016
f027af1
compilation against the latest May toolchain + 2.2
kjessup May 15, 2016
e2dba00
updated readme to indicate May toolchain compilation
kjessup May 15, 2016
3711890
uglied up some local variables but got rid of all parameter warnings …
kjessup May 15, 2016
0dd27e9
Removed some now unnecessary compat code
kjessup May 15, 2016
b616cd2
Merge pull request #173 from ShaneQi/master
kjessup May 16, 2016
2311288
Added JSON surrogate pair handling test. thx ShaneQi
kjessup May 16, 2016
b997fcd
Corrected issue with bad timeout handling in Threading.Event.wait and…
kjessup May 16, 2016
a0b48e1
Improved File read speed by eliminating extra allocation and array copy
kjessup May 16, 2016
f7dbbb6
Added defult wildcard route to serve static files out of webroot
kjessup May 17, 2016
cc829ae
Ensure that file is opened when setMarker is called
kjessup May 17, 2016
561cd5c
Renamed dispatchBlock to match 3.0 conventions
kjessup May 17, 2016
c9b6f95
PerfectServer initializes default webroot route
kjessup May 17, 2016
9e88983
ThreadQueue calls new dispatch func
kjessup May 17, 2016
0fb3c47
cURL calls new dispatch func
kjessup May 17, 2016
05caa02
NetEvent debug flag. Uses new dispatch func
kjessup May 17, 2016
309a025
Better performance on NetTCP reads
kjessup May 17, 2016
10f97ad
HTTP range and chunked support. WebConnection writes are async. Stati…
kjessup May 17, 2016
f460af4
Swift 2.2 compat for new changes
kjessup May 17, 2016
9b229bf
merging changes from ambientlight
kjessup May 17, 2016
579a4c5
ambientlight compilation changes - I dorked up the PR
kjessup May 17, 2016
c2daf7c
Include timerfd.h in LinuxBridge
kjessup May 17, 2016
bc6f285
Merge branch 'master' of https://github.com/PerfectlySoft/Perfect
kjessup May 17, 2016
b98cf11
Added String begins(with and ends(with to accomodate Linux differences
kjessup May 17, 2016
aba4ed9
Merge branch 'master' of https://github.com/PerfectlySoft/Perfect
kjessup May 17, 2016
b8ae8ca
Replaced prefix string funcs with end and begins
kjessup May 17, 2016
d1181d9
Linux compilation fixup
kjessup May 17, 2016
df6b97b
Fixed 2.2 compilation
kjessup May 17, 2016
26af928
Linux compilation
kjessup May 17, 2016
2c84921
Merge branch 'master' of https://github.com/PerfectlySoft/Perfect
kjessup May 17, 2016
e2bbbb7
Replaced string.substring with subscript. For Linux
kjessup May 17, 2016
dabeae0
Ubuntu 15 building again
kjessup May 17, 2016
f4dbc1e
Took care of compilation differences between U14 and 15
kjessup May 17, 2016
56ee991
SPM support improvement. Now uses hoembrew ssl and tests build and run.
kjessup May 22, 2016
b56ab53
Updated for Linux build
kjessup May 22, 2016
447a29c
Tweaks to get tests running on Linux. Included Foundation for path co…
kjessup May 24, 2016
6a316de
Re-enabled path components for OSX because @#$%^
kjessup May 24, 2016
bd2bcd9
Fixed regression in FastCGI connection handling
kjessup May 24, 2016
6a5f0cd
Swapped out ntohl et al in favor of Swift local swapping
kjessup May 24, 2016
951ce4a
Improved performance when using NetTCP.readSomeBytes
kjessup May 24, 2016
d52855b
Performance improvements in MIMEReader + 2/3 compat in Mustache
kjessup May 24, 2016
d3a9e39
Performance improvements for HTTP header parsing. Added header parse …
kjessup May 25, 2016
580c54b
Fixed attributes file for linguist-vendored
kjessup May 25, 2016
78417bd
Fixed attributes file for linguist-vendored
kjessup May 25, 2016
8cac817
Added mustache template caching with r/w lock. Tidied up a little code.
kjessup May 25, 2016
e63e609
gitattributes tweak
kjessup May 25, 2016
4ad1795
Further performance tweaks
kjessup May 26, 2016
cc7a274
Added header tests to allTests array
kjessup May 26, 2016
8532a45
Header tests all passing again
kjessup May 26, 2016
0923eee
NetEvent timeouts working on Linux
kjessup May 26, 2016
aaf2f56
Added file function and line number to Throw funcs
kjessup May 26, 2016
0a3e015
All tests passing on Linux
kjessup May 26, 2016
b55e670
Removed obsolete LinuxBridge. Corrected comments in Routing
kjessup May 27, 2016
ac36969
Ubuntu 14 compat with OpenSSL
kjessup May 27, 2016
8997191
corrected a couple inconsistencies in ThreadQueue
kjessup May 27, 2016
c008672
Switch to WebRequest.Method
kjessup May 27, 2016
f9f47fd
Reporting for invalid routes
kjessup May 27, 2016
dc036f2
Added routing trailing wildcard to match any path. Added routing tests.
kjessup May 30, 2016
421924d
Slight tweak to PerfectServer to enable simpler initialization
kjessup May 30, 2016
ecace6a
Updated readme to include PerfectTemplate, etc
kjessup May 30, 2016
e735688
Removed comment
kjessup May 31, 2016
b4121e0
Updated README.md
kjessup May 31, 2016
637e475
Took care of 3.0 preview 1 warnings and an error
kjessup May 31, 2016
c7d3ef6
Added a comment WRT UInt8.hexString to note how it differs from Strin…
kjessup May 31, 2016
dd05a46
Added user/group id switching with PerfectServer.switchTo. Exposed to…
kjessup May 31, 2016
c04adfd
ETag support for StaticFileHandler
kjessup May 31, 2016
a60559f
Refactor StaticFileHandler a little
kjessup Jun 1, 2016
5169a11
Minor formatting and code cleanup
kjessup Jun 1, 2016
b9bb26d
Fixed compilation issue with SPM
kjessup Jun 1, 2016
1865774
update Routes usage description
taplin Jun 1, 2016
9b0aaef
Merge remote-tracking branch 'origin/master'
taplin Jun 1, 2016
ed2b0c6
merge updates to routes description
taplin Jun 1, 2016
4a9040b
Update README.md
kjessup Jun 1, 2016
eea3643
Change mustache API to support async value generation
kjessup Jun 2, 2016
bb37c03
Merge branch 'master' of https://github.com/PerfectlySoft/Perfect
kjessup Jun 2, 2016
f10cdc0
Corrected typo in doc comment
kjessup Jun 2, 2016
2ff0334
Fixed bad deallocation in File. Updated mustache test for API change.
kjessup Jun 2, 2016
84d3252
Removed new compiler warnings in test code. Added additional CURL test
kjessup Jun 2, 2016
bfeb557
Changed to compile with swift-DEVELOPMENT-SNAPSHOT-2016-05-31-a
kjessup Jun 2, 2016
7d64165
Package version range
kjessup Jun 2, 2016
4284e3d
added .swift-version
kjessup Jun 3, 2016
10364c1
the new way of swift 3.0 to generate xcodeproj
kingiol Jun 3, 2016
0d11621
Merge pull request #182 from kingiol/master
kjessup Jun 3, 2016
5688736
Updated README to note proper toolchain
kjessup Jun 3, 2016
4d90ae5
Deleted unused image files
kjessup Jun 3, 2016
09f9cca
Removed Net/Thread code in favor of external modules. Removed Xcode p…
kjessup Jun 6, 2016
85d7e17
Split curl off into its own module. Removed Closable as it just wasn'…
kjessup Jun 6, 2016
82e1a76
Removed curl tests. Unified a file.
kjessup Jun 7, 2016
00154de
Refactored pathExtension extensions to remove duplicate code (thanks …
kjessup Jun 7, 2016
098435e
Removed some obsolete Swift compat code
kjessup Jun 7, 2016
01564c9
Refactored uuid from pointer creation
kjessup Jun 7, 2016
fd65297
File refactoring
kjessup Jun 7, 2016
2776c1e
Some WebRequest refactoring
kjessup Jun 7, 2016
6c13a46
Added a test. Some WebRequest refactoring
kjessup Jun 7, 2016
79af8f4
Fixed regression in File
kjessup Jun 7, 2016
9f2fe91
WebRequest refactoring
kjessup Jun 7, 2016
ee4e88b
Mustache partials now use template cache
kjessup Jun 7, 2016
ca01483
A bit of WebRequest cleanup
kjessup Jun 7, 2016
c3d10d5
A little cleanup and try to get jazzy working better
kjessup Jun 7, 2016
b3fea2d
Updated to newest Swift snapshot
kjessup Jun 7, 2016
0a8479d
Removed warnings for Linux compilation
kjessup Jun 7, 2016
167a401
Removed warnings for Linux compilation
kjessup Jun 7, 2016
cbf290b
Corrected multiple definition Linux compilation problem
kjessup Jun 8, 2016
37d2341
Updated README
kjessup Jun 8, 2016
7c8a97b
Updated README for dep changes.
kjessup Jun 8, 2016
9074fc1
Updated README
kjessup Jun 9, 2016
2b82b8b
Lower cased all enums to match lang guidelines
kjessup Jun 10, 2016
b0bc105
Fixed an error where mustache partials would fail due to relative and…
rymcol Jun 10, 2016
1c52e24
Merge pull request #186 from rymcol/mustache-partial-filepath
kjessup Jun 10, 2016
7372692
Updated README with new banner
kjessup Jun 13, 2016
faa8ac8
Some code cleanup and performance improvements
kjessup Jun 14, 2016
56d4d78
Updated tests
kjessup Jun 16, 2016
ff423df
Updated test for Linux
kjessup Jun 16, 2016
502e7c2
Updated README
kjessup Jun 16, 2016
37e143e
Updated README
kjessup Jun 16, 2016
3ac448f
Updated README
kjessup Jun 16, 2016
cf51807
Updated README
kjessup Jun 16, 2016
17fe188
Updated README
kjessup Jun 16, 2016
df97862
Made MimeType public
kjessup Jun 16, 2016
5f222fe
Cleaned up cookie expiration specification
kjessup Jun 16, 2016
133f3db
Updated README with Next Steps
kjessup Jun 16, 2016
81a57a1
Updated comments
kjessup Jun 16, 2016
3cef75d
Added and cleaned up some comments
kjessup Jun 17, 2016
3ff39e1
Added and cleaned up some comments
kjessup Jun 17, 2016
7b79bf0
Readme Main Banner Link
rymcol Jun 17, 2016
9ca9049
Merge pull request #193 from rymcol/readme-banner-link
kjessup Jun 19, 2016
3c31b5b
added @discardableResult to a few funcs
kjessup Jun 19, 2016
c3ee0d1
Update README.md
kjessup Jun 21, 2016
57b2007
update Routes usage description
JoeFerrucci Jun 22, 2016
21dfa3a
Merge pull request #197 from JoeFerrucci/master
kjessup Jun 22, 2016
5687e46
HTTP refactoring
kjessup Jun 23, 2016
946a8bd
HTTP refactoring
kjessup Jun 23, 2016
683e876
Reapplying headers as enum
kjessup Jun 23, 2016
a25ee9d
Performance tweaks
kjessup Jun 24, 2016
4ddf044
Added slow client test. Fixed a bug the slow client test found.
kjessup Jun 24, 2016
ce93daa
Using 'where' and 'guard' to remove pyramid of doom created by if els…
CoderXpert Jun 24, 2016
eae3ba0
using defer inside for loop for statements which need to execute in e…
CoderXpert Jun 24, 2016
23c9c45
Merge pull request #199 from CoderXpert/dir_refactor
kjessup Jun 25, 2016
f27ac6b
Updated for 6-20 snapshot
kjessup Jun 25, 2016
d8e38f7
Updated for 6-20 snapshot
kjessup Jun 25, 2016
0dff0c7
Updated for 6-20 snapshot
kjessup Jun 25, 2016
41f44ce
Merge branch 'http_refactor'
kjessup Jun 25, 2016
8f5c50b
Access tweaks
kjessup Jun 26, 2016
5e75906
Tweaked access
kjessup Jun 26, 2016
d7b5bcf
Badges stuff
kjessup Jun 26, 2016
22b8b87
A little code cleanup. Added some tests.
kjessup Jun 26, 2016
b7208ba
A little code cleanup.
kjessup Jun 26, 2016
0e7aa45
refactor dynamic loader class to look more like Swifty, by replacing …
CoderXpert Jun 26, 2016
7123fbd
Refactoring few methods in File.swift to use guard syntax to avoid py…
CoderXpert Jun 26, 2016
3c44c68
Updated README
kjessup Jun 27, 2016
7add841
Merge pull request #200 from CoderXpert/refactor_dynamicloader
kjessup Jun 27, 2016
46776c6
Merge pull request #201 from CoderXpert/file_refactor
kjessup Jun 27, 2016
4fd8ffd
Add reference to libssl-dev
iamjono Jun 27, 2016
733d563
HTTPResponseStatus.code
kjessup Jun 27, 2016
fd5ad2e
Renamed HTTPMethod.from. Made it public
kjessup Jun 28, 2016
b457d53
Fixed bad header name check in addHeader
kjessup Jun 28, 2016
8a2c7dd
Updated README
kjessup Jun 29, 2016
09423b6
Updated README with more detailed instructions
kjessup Jun 29, 2016
c7724d4
Fixed regression in httpresponse relating to content-length header
kjessup Jul 1, 2016
275db6b
Corrected problem with not setting content-length on keep-alive. Impr…
kjessup Jul 1, 2016
af2885b
Fix regression in StaticFileHandler when serving byte ranges
kjessup Jul 2, 2016
0075c42
HTTP request filters
kjessup Jul 4, 2016
9c98caa
HTTP response filters. Tests. Routing.reset()
kjessup Jul 5, 2016
45c02bf
Additional test: streaming response filters
kjessup Jul 5, 2016
bd0e14e
Doc comments for new code
kjessup Jul 5, 2016
38dbe45
Updated README
kjessup Jul 5, 2016
1dc517d
Updated README
kjessup Jul 5, 2016
0b7ef6d
Filtering api tweak
kjessup Jul 5, 2016
fc377b5
Minor code refactoring
kjessup Jul 5, 2016
7b06775
Minor code refactoring
kjessup Jul 5, 2016
d291ae2
Added syslog facility
kjessup Jul 5, 2016
a1e182e
Added syslog facility
kjessup Jul 5, 2016
5eccf86
Added syslog facility
kjessup Jul 5, 2016
8acbdf1
Log related facilities
kjessup Jul 6, 2016
cf2cc0e
Added support for tilde expansion in file and direcotry paths
kjessup Jul 6, 2016
886da1d
Additional tweak for tilde expansion in paths
kjessup Jul 6, 2016
142d5cb
Factored out HTTP things.
kjessup Jul 7, 2016
b5d3f72
Updated README
kjessup Jul 7, 2016
1e79cde
Fixed README problem
kjessup Jul 7, 2016
2acb42a
Fixed README problem
kjessup Jul 7, 2016
3c6136a
Updated README
kjessup Jul 8, 2016
4d885b7
Added a few more snippets to README
kjessup Jul 8, 2016
aac40b7
Updated README example
kjessup Jul 9, 2016
64b202c
Cleaned up UUID related meterials
kjessup Jul 10, 2016
2bcfe9d
Little code clean
kjessup Jul 10, 2016
2433033
Updated README
kjessup Jul 12, 2016
c3f92f7
Fixed test which was crashing Linux + a bad test
kjessup Jul 12, 2016
969253a
Made a few Dir funcs be vars instead. Cleaned up UUID related @availa…
kjessup Jul 13, 2016
53123ca
Added higher level file/dir permissions. Added test.
kjessup Jul 13, 2016
4a4f828
Linux compilation issues
kjessup Jul 13, 2016
719e605
Update README.md
kjessup Jul 14, 2016
f064099
Added throws on Dir.forEachEntry
kjessup Jul 15, 2016
fcb547b
Added retry for SysProcess EINTR. Added Dir.workingDir
kjessup Jul 15, 2016
b261b01
Fixed SysProcess closing before error info can be read
kjessup Jul 15, 2016
5221191
Adjusted stringByEncodingHTML to output BR for line breaks
kjessup Jul 18, 2016
5b45384
Added a Bytes test
kjessup Jul 25, 2016
d73f0d3
Updated for 07-25 chain
kjessup Jul 26, 2016
c8d4732
Updated for 07-25 chain
kjessup Jul 26, 2016
27ba77b
UPdated for 07-25 chain
kjessup Jul 26, 2016
65b39c1
Some Linux fixes
kjessup Jul 26, 2016
b1324dc
Abstracted over some lingering Linux/macOS Foundation differences
kjessup Jul 26, 2016
8676e4f
Linux ping pong
kjessup Jul 26, 2016
55f9860
Update README.md
kjessup Jul 27, 2016
c511664
current the freudian slip
iamjono Jul 27, 2016
6d2c95d
Merge branch 'master' of https://github.com/PerfectlySoft/Perfect
iamjono Jul 27, 2016
914beed
add issues location
iamjono Jul 27, 2016
9a46b92
Added Int32 & Int64 Extensions
rymcol Aug 1, 2016
e4329b4
Merge pull request #214 from rymcol/JSON-Int32-Int64
kjessup Aug 2, 2016
c0257d4
Updated for 8-04
kjessup Aug 5, 2016
44c8185
Updated for 8-04
kjessup Aug 8, 2016
e242d32
Update README.md
kjessup Aug 8, 2016
53876f4
Permit direct access to File fd
kjessup Aug 10, 2016
50fcf21
Removed dependency on Net. Re-added custom file path extensions
kjessup Aug 17, 2016
198d95b
Re-added initializeServices for compat
kjessup Aug 17, 2016
3798b3f
Corrected compat func
kjessup Aug 17, 2016
9bffaae
Update README.md
kjessup Aug 17, 2016
658208e
Fixed Linux testing
kjessup Aug 17, 2016
7611253
Update README.md
kjessup Aug 19, 2016
9142666
Opened class JSONConvertible
kjessup Aug 19, 2016
a6e9bf8
Merge branch 'master' of https://github.com/PerfectlySoft/PerfectLib
kjessup Aug 19, 2016
bd51c3b
Incoming edits from Liam
iamjono Aug 19, 2016
80ab238
Update to correct toolchain version
iamjono Aug 19, 2016
42f25ac
Updated for 8-18 toolchain
kjessup Aug 19, 2016
31202e1
Updated readme
kjessup Aug 19, 2016
0e1076b
update with new banners
iamjono Aug 22, 2016
55e7c27
hardcoding size
iamjono Aug 22, 2016
2def842
adding slack
iamjono Aug 22, 2016
f5753fb
formatting
iamjono Aug 22, 2016
7b93ffb
Create CODE_OF_CONDUCT.md
iamjono Aug 22, 2016
0c5debe
Adding code of conduct link, organizing repo mentions
iamjono Aug 22, 2016
eea880b
Slight change to current version presentation
iamjono Aug 22, 2016
e9d5ff7
Center Readme Badges
rymcol Aug 22, 2016
b536bbd
Center Top Images
rymcol Aug 22, 2016
0e795cc
STAY ON THE REPO
rymcol Aug 22, 2016
25ffb31
modifiable interface for child object
scorovit Aug 23, 2016
e04050e
Small grammar update to make the API docs more readable
iamjono Aug 23, 2016
f3d10de
Merge remote-tracking branch 'origin/master'
iamjono Aug 23, 2016
ceed6ce
Merge pull request #215 from rymcol/badges
iamjono Aug 23, 2016
87a54d5
Updating swift snapshot version to 08-23
iamjono Aug 24, 2016
cc0d291
Merge pull request #216 from scorovit/patch-1
iamjono Aug 25, 2016
aa49508
Returned public access for default initializer
scorovit Aug 25, 2016
f4abad8
Updated converter for complex data
scorovit Aug 26, 2016
b0ec9cb
Update JSONConvertible.swift
scorovit Aug 26, 2016
a7b78da
Removed optional from separator
scorovit Sep 20, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Sources/LinuxBridge/* linguist-vendored
Sources/OpenSSL/* linguist-vendored
Sources/cURL/* linguist-vendored
Xcode/PerfectLib/* linguist-vendored
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ DerivedData
*.hmap
*.ipa
*.xcuserstate
*.xcscmblueprint

# CocoaPods
#
Expand All @@ -31,3 +32,27 @@ DerivedData
# Carthage/Checkouts

Carthage/Build

*.d

*.o

*.swiftdeps

*.swiftdoc

*.swiftmodule

*.so

*.DS_Store

# Perfect binaries
PerfectServer/perfectserverfcgi
PerfectServer/perfectserverhttp

# SwiftPM
.build/
Packages/
PerfectLib.xcodeproj/
docs/
8 changes: 8 additions & 0 deletions .jazzy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module: PerfectLib
author: PerfectlySoft
author_url: https://perfect.org
github_url: https://github.com/PerfectlySoft/Perfect
copyright: '© 2016 PerfectlySoft Inc. and the Perfect project authors'
theme: fullwidth
xcodebuild_arguments: [-target, PerfectLib, -toolchain, org.swift.3020160620a]
clean: true
1 change: 1 addition & 0 deletions .swift-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DEVELOPMENT-SNAPSHOT-2016-08-18-a
74 changes: 74 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
1 change: 0 additions & 1 deletion Connectors/MongoDB/README.md

This file was deleted.

1 change: 0 additions & 1 deletion Connectors/MySQL/README.md

This file was deleted.

1 change: 0 additions & 1 deletion Connectors/PostgreSQL/README.md

This file was deleted.

1 change: 0 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -199,4 +199,3 @@
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

35 changes: 35 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//
// Package.swift
// PerfectLib
//
// Created by Kyle Jessup on 3/22/16.
// Copyright (C) 2016 PerfectlySoft, Inc.
//
//===----------------------------------------------------------------------===//
//
// This source file is part of the Perfect.org open source project
//
// Copyright (c) 2015 - 2016 PerfectlySoft Inc. and the Perfect project authors
// Licensed under Apache License v2.0
//
// See http://perfect.org/licensing.html for license information
//
//===----------------------------------------------------------------------===//
//

import PackageDescription

var urls = [String]()

#if os(Linux)
urls += ["https://github.com/PerfectlySoft/Perfect-LinuxBridge.git"]
#else

#endif

let package = Package(
name: "PerfectLib",
targets: [],
dependencies: urls.map { .Package(url: $0, versions: Version(0,0,0)..<Version(10,0,0)) },
exclude: []
)
1 change: 0 additions & 1 deletion PerfectLib/README.md

This file was deleted.

1 change: 0 additions & 1 deletion PerfectServer/README.md

This file was deleted.

158 changes: 156 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,158 @@
# Perfect
==================
# Perfect: Server-Side Swift
<p align="center">
<a href="http://perfect.org/get-involved.html" target="_blank">
<img src="http://www.perfect.org/github/Perfect_GH_header_854.jpg" alt="Get Involed with Perfect!" />
</a>
</p>

<p align="center">
<a href="https://github.com/PerfectlySoft/Perfect" target="_blank">
<img src="http://www.perfect.org/github/Perfect_GH_button_1_Star.jpg" alt="Star Perfect On Github" />
</a>
<a href="https://gitter.im/PerfectlySoft/Perfect" target="_blank">
<img src="http://www.perfect.org/github/Perfect_GH_button_2_Git.jpg" alt="Chat on Gitter" />
</a>
<a href="https://twitter.com/perfectlysoft" target="_blank">
<img src="http://www.perfect.org/github/Perfect_GH_button_3_twit.jpg" alt="Follow Perfect on Twitter" />
</a>
<a href="http://perfect.ly" target="_blank">
<img src="http://www.perfect.org/github/Perfect_GH_button_4_slack.jpg" alt="Join the Perfect Slack" />
</a>
</p>

<p align="center">
<a href="https://developer.apple.com/swift/" target="_blank">
<img src="https://img.shields.io/badge/Swift-3.0-orange.svg?style=flat" alt="Swift 3.0">
</a>
<a href="https://developer.apple.com/swift/" target="_blank">
<img src="https://img.shields.io/badge/Platforms-OS%20X%20%7C%20Linux%20-lightgray.svg?style=flat" alt="Platforms OS X | Linux">
</a>
<a href="http://perfect.org/licensing.html" target="_blank">
<img src="https://img.shields.io/badge/License-Apache-lightgrey.svg?style=flat" alt="License Apache">
</a>
<a href="https://codebeat.co/projects/github-com-perfectlysoft-perfect" target="_blank">
<img src="https://codebeat.co/badges/85f8f628-6ce8-4818-867c-21b523484ee9" alt="codebeat">
</a>
<a href="http://twitter.com/PerfectlySoft" target="_blank">
<img src="https://img.shields.io/badge/[email protected]?style=flat" alt="PerfectlySoft Twitter">
</a>
<a href="https://gitter.im/PerfectlySoft/Perfect?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge" target="_blank">
<img src="https://img.shields.io/badge/Gitter-Join%20Chat-brightgreen.svg" alt="Join the chat at https://gitter.im/PerfectlySoft/Perfect">
</a>
<a href="http://perfect.ly" target="_blank">
<img src="http://perfect.ly/badge.svg" alt="Slack Status">
</a>
</p>

##Perfect: Server-Side Swift

Perfect is a complete and powerful toolbox, framework, and application server for Linux, iOS, and macOS (OS X). It provides everything a Swift engineer needs for developing lightweight, maintainable, and scalable apps and other REST services entirely in the Swift programming language for both client-facing and server-side applications.

Perfect includes a suite of tools that will enhance your productivity as you use only one programming language to build your apps: Swift. The global development community’s most dynamic and popular server-side toolbox and framework available today, Perfect is the backbone for many live web applications and apps available on iTunes.

This guide is designed for developers at all levels of experience to get Perfect up and running quickly.

## Working with Perfect

###Compatibility with Swift

**The master branch of this project currently compiles with the August 23rd Swift toolchain snapshot. **

```
Current version: DEVELOPMENT-SNAPSHOT-2016-08-23-a
```

We focus exclusively on the latest and most stable version of Swift to maximize developers’ productivity. *Until the release of Swift 3.0 (expected in September 2016), please treat this version of Perfect for R&D purposes only*.

###Getting Started

[Access a tutorial](https://github.com/PerfectlySoft/PerfectDocs/blob/master/guide/gettingStarted.md) to help you get started using Perfect quickly. It includes straightforward examples of how Perfect can be used.

### Documentation
[Get started working with Perfect](https://github.com/PerfectlySoft/PerfectDocs), deploy your apps, and find more detailed help by consulting our reference library.

We welcome contributions to Perfect’s documentation. If you spot a typo, bug, or other errata, or have additions or suggestions to recommend, please [create a pull request or log an issue in JIRA](http://jira.perfect.org:8080/servicedesk/customer/portal/1/user/login?destination=portal%2F1).

### Community
We all need a little help now and then. If you do too, don’t be shy, ask us or the friendly and supportive Perfect community:


[Slack](http://perfect.ly/) | [Gitter](https://gitter.im/PerfectlySoft/Perfect?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | [Twitter](https://twitter.com/perfectlysoft)

### Deployment

Currently, there are options to deploy Perfect to [Docker](https://hub.docker.com/r/perfectlysoft/ubuntu/) and [Heroku](https://github.com/PerfectlySoft/Perfect-Heroku-Buildpack). We recommend you use these until the other deployment options are updated to compile with Swift 3.0 and Perfect 2.0.

### Samples, Examples, and Tutorials

Our library continues to grow as members of [the Swift-Perfect development community have shared many samples and examples](https://github.com/PerfectlySoft/PerfectExamples) of their projects in Perfect. Examples include:

- [WebSockets Server](https://github.com/PerfectlySoft/PerfectExample-WebSocketsServer)
- [URL Routing](https://github.com/PerfectlySoft/PerfectExample-URLRouting)
- [Upload Enumerator](https://github.com/PerfectlySoft/PerfectExample-UploadEnumerator)
- [Ultimate Naughts & Crosses](https://github.com/PerfectlySoft/PerfectExample-UltimateNaughtsAndCrosses/tree/d11348f106f04dd48057c8d6cfff5a45fba1093e) multiplayer game

There are [many more examples](https://github.com/PerfectlySoft/PerfectExamples) you can explore. Please share yours!

[Access tutorials for working in Perfect 1.0](http://perfect.org/tutorials.html) (which supports Swift 2.2) published by members of the Swift-Perfect community. Or [start working in Perfect 2.0](http://perfect.org/downloads.html#download-perfect) (supports Swift 3.0).

## Core Perfect Modules

Perfect project is divided into several repositories to make it easy for you to find, download, and install the components you need:

- [Perfect](https://github.com/PerfectlySoft/Perfect) – This repository contains the core PerfectLib and will continue to be the main landing point for the project
- [Perfect Docs](https://github.com/PerfectlySoft/PerfectDocs) – Contains all API reference-related material


### Examples

- [Perfect Template](https://github.com/PerfectlySoft/PerfectTemplate) - A simple starter project which compiles with the Swift Package Manager into a standalone executable HTTP server. This repository is ideal for starting a Perfect-based project
- [Perfect Examples](https://github.com/PerfectlySoft/PerfectExamples) - All the Perfect example projects and documentation


### DataSources


- [Perfect Redis](https://github.com/PerfectlySoft/Perfect-Redis) - The Redis database connector
- [Perfect SQLite](https://github.com/PerfectlySoft/Perfect-SQLite) - SQLite3 database connector
- [Perfect PostgreSQL](https://github.com/PerfectlySoft/Perfect-PostgreSQL) - PostgreSQL database connector
- [Perfect MySQL](https://github.com/PerfectlySoft/Perfect-MySQL) - MySQL database connector
- [Perfect MongoDB](https://github.com/PerfectlySoft/Perfect-MongoDB) - MongoDB database connector
- [Perfect FileMaker](https://github.com/PerfectlySoft/Perfect-FileMaker) - FileMaker Server database connector

### Utilities

- [Perfect FastCGI Apache 2.4](https://github.com/PerfectlySoft/Perfect-FastCGI-Apache2.4) - Apache 2.4 FastCGI module; required for the Perfect FastCGI server variant
- [Perfect XML](https://github.com/PerfectlySoft/Perfect-XML) - DOM Core level 2 read-only APIs and XPath support
- [Perfect HTTP Server](https://github.com/PerfectlySoft/Perfect-HTTPServer) - HTTP 1.1 server for Perfect
- [Perfect Mustache](https://github.com/PerfectlySoft/Perfect-Mustache) - Mustache template support for Perfect
- [Perfect CURL](https://github.com/PerfectlySoft/Perfect-CURL) - cURL support for Perfect
- [Perfect WebSockets](https://github.com/PerfectlySoft/Perfect-WebSockets) - WebSockets support for Perfect
- [Perfect Zip](https://github.com/PerfectlySoft/Perfect-Zip) - provides simple zip and unzip functionality

## More about Perfect

Perfect operates using either a standalone [HTTP server](https://github.com/PerfectlySoft/Perfect-HTTP), [HTTPS server](https://github.com/PerfectlySoft/Perfect-HTTPServer), or through [FastCGI server](https://github.com/PerfectlySoft/Perfect-FastCGI). It provides a system for loading your Swift-based modules at startup, for interfacing those modules with its request/response objects, or to the built-in [Mustache template processing system](https://github.com/PerfectlySoft/Perfect-Mustache).

Perfect is built on a completely asynchronous, high-performance networking engine to provide a scalable option for internet services. It supports Secure Sockets Layer (SSL) encryption, and it features a suite of tools commonly required by internet servers such as [WebSockets](https://github.com/PerfectlySoft/Perfect-WebSockets) and [iOS push notifications](https://github.com/PerfectlySoft/Perfect-Notifications), but you are not limited to those options.

Feel free to use your favourite JSON or templating systems, etc.

### Join and Contribute to the Community

The Swift-Perfect developer community is vital to improving Perfect and supporting one another.  

You can help other developers by sharing your expertise and tips, as well as learn from others, by joining the [Perfect Slack channel](http://perfect.ly) or the [Perfect Gitter channel](https://gitter.im/PerfectlySoft/Perfect), whichever is your preference - we will be hanging out in both mediums. Contributions of all kinds are welcome: reporting issues, updating documentation, fixing bugs, building examples, sharing projects, and any other tips that may help the Swift-Perfect community.

If you would like to report an issue, make a new feature request, or help others by working on a known issue, please see the [Perfect JIRA repository](http://jira.perfect.org:8080/secure/Dashboard.jspa).

If you would like to share your example project, tutorial, or video, please share the URL of your work on GitHub and [Twitter](https://twitter.com/perfectlysoft), and the Perfect team will highlight it to the community.

### Code of Conduct
The Perfect team welcomes people of all ethnicities, nationalities, ages, gender, disability, levels of experience, and religious beliefs to use and contribute to the Perfect project. We pledge to foster and enforce a harassment-free environment of openness, respect, and cooperation for everyone in all project and public spaces online or offline.

Please report any behaviour that violates our [Code of Conduct](https://github.com/PerfectlySoft/Perfect/blob/master/CODE_OF_CONDUCT.md) to [[email protected]](mailto:[email protected]). The Perfect team is committed to enforcing this Code of Conduct to ensure everyone who wishes to use, contribute to, and comment on the Perfect project may do so freely and openly and without fear of reprisal.

We will investigate all complaints of unacceptable or abusive behaviour or comments expediently, and we will maintain the confidentiality of the person who reports any perceived infraction or wrongdoing to us. We will not tolerate any form of direct or indirect harassment or discrimination within the Swift-Perfect community, and will take appropriate, fair, and corrective action to any instance of inappropriate behaviour.

The Perfect team maintains the right to remove, edit, or reject any comments, code, edits, or issues that do not align with our Code of Conduct.
Loading