ApacheExpress ✂️ mod_swift

Breaking news: A much enhanced ApacheExpress becomes its own project, separate from mod_swift.

Our original mod_swift technology demo contained various things:

  • mod_swift, the C module which adds the LoadSwiftModule directive
  • Module maps etc to expose the Apache C API to Swift
  • ExExpress
  • ApacheExpress
  • a set of examples

All setup as a ‘demo’ environment to showcase how Apache modules can be written in Swift, right within Xcode.

As it turns out, Swift is actually a great language to write Apache modules in! And ApacheExpress is a pretty neat framework on top. So in the last few months we worked on turning mod_swift from being just a neat technology demo into being a reliable hosting environment for Swift web applications.

During that, ApacheExpress functionality has also grown a lot and evolved into a rather powerful web application framework (stay tuned!). Hence we felt that we need to separate the two. On one side mod_swift being just an integration point between Swift and Apache that is framework independent. On the other side ApacheExpress as a higher level framework with an Express like API.

The new mod_swift

The new mod_swift is not setup as a fancy demo but as an infrastructure component. If you want a little like Phusion Passenger, but not really, because mod_swift is used to create fully native Apache modules instead of hosting foreign webapps within Apache.

Read more about it over here: The new mod_swift.

The new ApacheExpress

We split off mod_swift because we think it is generally useful as a standalone component for various Swift server projects. Plugging into “The Number One HTTP Server On The Internet” just makes more sense than trying to replicate its rich and proven functionality.

However, we also have a neat, higher level, framework in the works: ApacheExpress. It is based on what was included in the mod_swift technology demo, but much enhanced and interfaces with our ZeeQL database access framework.
Work is still in progress to finish that up, stay tuned!


We think this is pretty cool stuff, but we love feedback. Join the mailing list, Slack channel or just drop us an email to tell us why this is crap (or not?): Slack.

Written on May 31, 2017