MacroApp layers on top of MacroExpress to provide a SwiftUI like, declarative setup of endpoints.
It is a little more opinionated than MacroExpress.
MacroExpress is a small, unopinionated "don't get into my way" / "I don't wanna
wait
" asynchronous web framework for Swift. With a strong focus on replicating the Node APIs in Swift. But in a typesafe, and fast way.
MacroApp is just syntactic sugar (using Swift function builders) on top of MacroExpress. The configuration is evaluated into a regular MacroExpress based app (with routes and middleware).
MacroApp:
@main
struct HelloWorld: App {
var body: some Endpoints {
Use(logger("dev"), bodyParser.urlencoded())
Route("/admin") {
Get("/view") { req, res, _ in res.render("admin-index.html") }
Render("help", template: "help")
}
Get { req, res, next in
res.render("index.html")
}
}
}
Instead of this traditional route setup (as in MacroExpress):
let app = express()
app.use(logger("dev"), bodyParser.urlencoded())
app.route("/admin")
.get("/view") { req, res, _ in res.render("admin-index.html") }
app.get("/") { req, res, _ in res.render("index.html") }
app.listen(1337) {
console.log("Server listening on http://localhost:1337")
}
macro.core.numthreads
macro.core.iothreads
macro.core.retain.debug
macro.concat.maxsize
macro.streams.debug.rc
macro.router.debug
macro.router.matcher.debug
- MacroExpress
- Macro
- µExpress
- Noze.io
- SwiftNIO
- JavaScript Originals
- Swift Apache
MacroExpress is brought to you by the Always Right Institute and ZeeZide. We like feedback, GitHub stars, cool contract work, presumably any form of praise you can think of.
There is a #microexpress
channel on the
Noze.io Slack. Feel free to join!