Popularity
1.4
Growing
Activity
0.0
Stable
34
10
1

Code Quality Rank: L5
Programming language: Swift
License: MIT License
Tags: Network     Webserver    
Latest version: v0.2.0

Kunugi alternatives and similar libraries

Based on the "Webserver" category.
Alternatively, view Kunugi alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Kunugi or a related project?

Add another 'Webserver' Library

README

Kunugi

Kunugi(椚) is minimal web framework and middleware systems for Swift. This is inpired by Node.js' Koa.

Kunugi doesn't provide http server its self. It provides Nest Interface.

See some example projects until documents is done.

Note: This is in early development project.

Usage

Define your context and app.

import Kunugi
import Nest

class Context: ContextBox {
    var context: [ContextType] = []
    var request: Request

    var method: Method
    var path: String
    var parameters: [String: String] = [:]

    init(request: Request) {
        self.request = request
        self.path = request.path
        self.method = Method(request.method)
    }
}

class App: AppType {

    var wrap: [WrapMiddleware] = []
    var middleware: [MiddlewareType] = []

    func use(m: WrapMiddleware) {
        wrap.append(m)
    }

    func use(m: MiddlewareType) {
        middleware.append(m)
    }

    var application: Application {
        ... // root handler for your server
    }
}

Create your request handler.

// Closure style handler with routes
let router = Router()
router.get("/hello") { ctx in
    return .Respond(Response(.Ok, body: "world"))
}

// Controller style handler
struct HelloController: ControllerMiddleware, AnyRequestHandleable {
    func post(ctx: ContextBox) throws -> MiddlewareResult {
        return .Respond(Response(.Ok, body: "hello world"))
    }
}

Stack your middleware to the app and start your server.

let app = App()

app.use(Logger())
app.use(BodyParser())

app.use(router)
app.use( Route("/helloworld", HelloController()) )

Server(port: 3000, app.application).start()

Requirements

  • Swift 2.1 or Later (includes Linux support)
  • OS X 10.10 or Later

License

MIT


*Note that all licence references and agreements mentioned in the Kunugi README section above are relevant to that project's source code only.