目录
目录README.md

MacroApp

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).

Example

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")
}

Environment Variables

  • macro.core.numthreads
  • macro.core.iothreads
  • macro.core.retain.debug
  • macro.concat.maxsize
  • macro.streams.debug.rc
  • macro.router.debug
  • macro.router.matcher.debug

Who

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!

邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号