Swiftpack.co - Macro-swift/MacroLambda as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by Macro-swift.
Macro-swift/MacroLambda 0.5.0
AWS Lambda API Gateway Support for Macro and MacroExpress (and all things built on-top)
⭐️ 13
🕓 1 year ago
linux macOS iOS
.package(url: "https://github.com/Macro-swift/MacroLambda.git", from: "0.5.0")

MacroLambda

AWS Lambda API Gateway Support for Macro and MacroExpress (and all things built on-top).

It allows deployment of arbitrary Macro applications as AWS Lambda functions, including MacroApp endpoints.

Blog article: Deploying Swift on AWS Lambda.

The module is split into the MacroLambda module, which provides the Express runner (Lambda.run(express-app)) and MacroLambdaCore which only links against http and provides the lambda.createServer (the peer to http.createServer).

There is a tutorial on getting started with those things: Create your first HTTP endpoint with Swift on AWS Lambda.

Note: The Swift Lambda Runtime requires Swift 5.2.

Example

import MacroLambda

let app = Express()

app.use(bodyParser.text())

app.post("/hello") { req, res, next in
  console.log("Client posted:", req.body.text ?? "-")
  res.send("Client body sent: \(req.body.text ?? "~nothing~")")
}

app.get { req, res, next in
  res.send("Welcome to Macro!")
}

Lambda.run(app)

Deployment

Using swift lambda (brew install SPMDestinations/tap/swift-lambda):

$ swift lambda deploy -d 5.2

Tutorial available: Deploying Swift on AWS Lambda.

Environment Variables

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

Links

Who

Macro is brought to you by Helge Heß / 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!

GitHub

link
Stars: 13
Last commit: 4 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

TheLatest
1 year ago

Updated to use the latest SwiftNIO. This implies that Swift 5.5.2+ is now required.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics