Upgrade to Pro — share decks privately, control downloads, hide ads and more …



The open-sourcing of Swift brought lots of love for non-OSX programmers. Linux support is a huge step for making Swift a full stack language, equally suited for server and client side applications. While it's very much a work in progress, there's already been built a vibrant landscape of backend-oriented frameworks and libraries, coming both from the community and the enterprises. Let's see what tools are available, how they can be used and why Swift on server side might be a good idea, despite the early stage.

Krzysztof Siejkowski

March 31, 2016

More Decks by Krzysztof Siejkowski

Other Decks in Programming


  1. how to set up? 1.Download Perfect 2.Create Xcode workspace 3.Add

    Perfect as subprojects 4.Setup targets (see tutorial) 5.Run!
  2. Set up 1.Install swift-DEVELOPMENT-SNAPSHOT-2016-02-08-a 2.Install "Swift Command Line Application" template

    3.Create Xcode project with SPM folders and targets 4.Install Zewo dependencies 5.Install zewodev 6.Checkout & generate Zewo using zewodev 7.Add Zewo to my Xcode project 8.RUN!
  3. swiftenv Swift Version Manager by Kyle Fuller $ swiftenv install

    swift-DEVELOPMENT-SNAPSHOT-2016-02-08-a $ swiftenv global DEVELOPMENT-SNAPSHOT-2016-02-08-a
  4. !2. Install template !3. Create Xcode / SPM project Swift

    Package Manager (aka SPM) Package !"" Package.swift !""""""""""""""""""""""""""""""""""""""" Tests #"" Sources !"" LinuxMain.swift !"" Module1 !"" Module1 $ #"" FileFromModule1.swift $ #"" TestForModule1.swift #"" Module2 #"" Module2 #"" FileFromModule2.swift #"" TestForModule2.swift
  5. Package.swift import PackageDescription let package = Package(name: "Package", targets: [

    Target(name: "Package", dependencies: [ .Target(name: "Module1"), .Target(name: "Module2") ]), Target(name: "Module1"), Target(name: "Module2"), ], dependencies: [ .Package(url: "https://github.com/SwiftyLib/Lib.git", majorVersion: 0) ] )
  6. !2. Install "Swift Command Line Application" template !3. Create Xcode

    project with SPM folders and targets Xcode ! SPM
  7. !5. Install zewodev !6. Checkout & generate Zewo using zewodev

    !7. Add Zewo to my Xcode project Make Xcode ❤ SPM $ sudo gem install zewo-dev
  8. !4. Install Zewo dependencies SPM wants to ❤ C libraries

    and external dependencies $ brew install zewo/tap/zewo
  9. recap » swiftenv » SPM & modularity » Xcode /

    SPM » SPM / C libs » Docker, Heroku
  10. Things missing Opportunities ! » utilities of all kind »

    ports from other platforms » architecture models (like actor model) » monitoring tools » SwiftJS (ShiftJS) » performance » many more
  11. recap » development on Linux » mix and match !

    » full stack » opportunities!
  12. Conwey's law “organizations which design systems (in the broad sense

    used here) are constrained to produce designs which are copies of the communication structures of these organizations” Melvin E. Conway, April, 1968