swift on the server
TRANSCRIPT
![Page 1: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/1.jpg)
Swift on the ServerRobert F. DickersonDevoxx US, March 2017
![Page 2: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/2.jpg)
@rfdickerson
Swift Programming Language
Strong types
Static types
Automatic Reference Counting
Optionals
Algebraic Data types
Closures
![Page 3: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/3.jpg)
@rfdickerson
Swift language growth
RedMonk rating: 11
![Page 4: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/4.jpg)
@rfdickerson
Why Swift on the Server?
![Page 5: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/5.jpg)
@rfdickerson
Performant ApplicationsD
urat
ion
(s) l
ower
is b
ette
r
0
33.5
67
100.5
134
Swift Java NodeJS Ruby
134.2
15.84.34
![Page 6: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/6.jpg)
@rfdickerson
Low MemoryD
urat
ion
(s) l
ower
is b
ette
r
0.00
15.00
30.00
45.00
60.00
Swift Java NodeJS Ruby
54.6
25.332.2
15
![Page 7: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/7.jpg)
@rfdickerson
Swift is ideal for Cloud
![Page 8: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/8.jpg)
@rfdickerson
Isomorphic Development
mobilebackend
![Page 9: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/9.jpg)
@rfdickerson
Use familiar libraries
![Page 10: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/10.jpg)
@rfdickerson
Server-side Swift Frameworks
KituraVaporPerfect Zewokitura.io
http://www.zewo.io/www.vapor.io
![Page 11: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/11.jpg)
@rfdickerson
Routing with Kitura
router.get("/hello") { request, response, callNextHandler in
response.status(.OK).send("Hello, World!") callNextHandler() }
![Page 12: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/12.jpg)
@rfdickerson
FROM ibmcom/swift-ubuntu-runtime:latest LABEL Description=""
EXPOSE 8080
WORKDIR $HOME COPY . $HOME
RUN swift build —configuration release CMD .build/release/Server
![Page 13: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/13.jpg)
@rfdickerson
Swift Working Group
Create standards for:
• Basic Networking
• Security and Encryption
• HTTP and Websockets
![Page 15: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/15.jpg)
@rfdickerson
Package Catalog
https://packagecatalog.com
![Page 16: Swift on the Server](https://reader031.vdocuments.site/reader031/viewer/2022021920/58e4ac111a28abbb038b589b/html5/thumbnails/16.jpg)
@rfdickerson
BookLearn about:
• Eliminate bugs in your programs• Managing asynchrony• Swift Package Manager• Writing a REST webservice• Authentication• Database