Currently in Beta - View old docs

Hello world example

Step 1: Create project

First create a directory for our project, which will also serve as the project's name:

mkdir HelloKitura && cd HelloKitura

Initialize the directory as a Swift project:

swift package init --type executable

Swift Package Manager (SPM) creates a Swift project stub. All we need to do is add our project dependencies, like Kitura, to the project.

Step 2: Add Kitura to our dependencies

To add Kitura to our dependencies we need to edit the Package.swift file.

Open Package.swift in your default text editor:

open Package.swift

Add Kitura to our dependencies so the Package.swift file looks like this:

// swift-tools-version:5.0
import PackageDescription

let package = Package(
    name: "HelloKitura",
    dependencies: [
        .package(url: "https://github.com/IBM-Swift/Kitura", from: "2.7.0")
    ],
    targets: [
        .target(
            name: "HelloKitura",
            dependencies: ["Kitura"]),
        .testTarget(
            name: "HelloKituraTests",
            dependencies: ["HelloKitura"]),
    ]
)

Now we can build the project to pull down our new dependency:

swift build

Step 3: Add the server code

Open main.swift in our text editor:

open Sources/HelloKitura/main.swift

Replace the contents of the file with the following code:

import Kitura

let router = Router()

router.get("/") { request, response, next in
    response.send("Hello world!")
    next()
}

Kitura.addHTTPServer(onPort: 8080, with: router)
Kitura.run()

The code above is the simplest Kitura application we can create. This application starts a server and listens on port 8080 for connections. The application responds with “Hello World!” when requests are made to the root URL (/).

Step 4: Start the server

Run the project:

swift run

Open your web browser at http://localhost:8080.

You should see the following in your browser:

"Hello, World!"

Congratulations! You have just created your first server-side Swift application using Kitura.

Step 5: Where to next?

In this simple Kitura application all of our Swift code is contained in a single main.swift file. It is not what you'd get if you use either the Kitura macOS app, or, the Kitura Command Line Interface to create your server, as these both generate scaffolding for your application.

In practice it's preferable to structure your project code in more than one file, so now you've tried using Kitura perhaps you'd like to checkout out our Style Guide and then explore our other guides!

Back to top