Kunugi alternatives and similar libraries
Based on the "Webserver" category.
Alternatively, view Kunugi alternatives based on common mentions on social networks and blogs.
-
Perfect
Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…) -
Zewo
Lightweight library for web server applications in Swift on macOS and Linux powered by coroutines.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Kunugi or a related project?
Popular Comparisons
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.