Skip to content

XML-RPC support for MacroExpress (Swift XML-RPC servers)

License

Notifications You must be signed in to change notification settings

Macro-swift/MacroXmlRpc

Repository files navigation

Macro XML-RPC

XML-RPC support for MacroExpress.

This is covered in the Writing an Swift XML-RPC Server blog entry.

What does it look like?

#!/usr/bin/swift sh
import MacroExpress // @Macro-swift
import MacroXmlRpc  // @Macro-swift

let app = express()

app.route("/RPC2")
   .use(bodyParser.xmlRpcCall())
   .rpc("ping") { _ in "pong" }
   .rpc("add")  { ( a: Int, b: Int ) in a + b }
   .use(xmlrpc.introspection())

app.listen(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
  • macro.router.walker.debug

Async/Await

This doesn't support async/await yet as proper streaming would require custom executors. Which are not yet available.

Maybe a temporary measure would be appropriate just for XML-RPC (which rarely has streaming consumers/producers).

Links

Who

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