Bodeue
Bodeue

Reputation: 47

Missing libraries/modules from Perfect framework on Linux

I am a newbie learning how to code in Swift on Linux. Right now I am trying to use Perfect framework so I can create th REST service (or something like that) I am following instructions in this

https://videos.raywenderlich.com/courses/77-server-side-swift-with-perfect/lessons/1

video (I have found a link on perfect.org site) and I did everything just like in the video, but the problem occurs when I have to edit the main.swift file and use include to use the PerfectLib, PerfectHTTP and PerfectHTTPServer libraries/modules(?). When I run it the error shows on the terminal saying:

main.swift:1:8: error: no such module 'PerfectHTTP'
import PerfectHTTP

Same with other modules. Do I have to place downloaded files from Perfect to some special directory within swift directory? Or maybe the files in download link are not complete?

Upvotes: 0

Views: 473

Answers (1)

PerfectlyRock
PerfectlyRock

Reputation: 413

before doing any Server Side Swift, please temporarily forget Xcode and try a new tool chain called Swift Package Manager. Open a terminal in a blank folder and type swift package init then it will setup a blank project which contains a Package.swift, a folder named Sources and a Tests directory as well.

Now you have to edit the Package.swift before import anything into your source code. For example, the starter template Perfect server has such a Package.swift:

import PackageDescription

let package = Package(
    name: "PerfectTemplate",
    targets: [],
    dependencies: [
        .Package(url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", majorVersion: 2)
    ]
 )

Then you can import any Perfect libraries included in the Perfect-HTTPServer.git

Here is the importing part as defined in the main.swift of PerfectTemplate:

import PerfectLib
import PerfectHTTP
import PerfectHTTPServer

So I will suggest that the best practice is to try Perfect Assistant: https://assistant.perfect.org/perfectassistant/Perfect%20Assistant.dmg which can save most tricky operations such as dependency management, building on linux and production server deployment.

For more information about Perfect other than tutorial video, see this link: http://www.perfect.org/docs/

Upvotes: 1

Related Questions