Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News IBM Announces Kitura 1.0 and Bluemix Runtime for Swift 3

IBM Announces Kitura 1.0 and Bluemix Runtime for Swift 3

Just a few days after Swift 3 official announcement, IBM has released version 1.0 of its open source, server-side Kitura framework along with the IBM Bluemix Runtime for Swift 3. InfoQ has spoken with IBM’s Chris Bailey about the status of Swift on the server.

Confirming its commitment to make Swift on the server a stable reality, IBM has made available version 1.0 of its Swift framework for the cloud, Kitura, which includes features such as URL routing, SSL/TLS support, JSON parsing, and pluggable middleware. Kitura also includes a web server that can serve static files and also provides Fast CGI support.

Additionally, the latest Swift tools have been included in IBM Bluemix Runtime, which makes it possible to deploy Swift code to IBM cloud platform.

InfoQ has spoken with IBM’s Chris Bailey, Senior Technical Staff Member working on runtime technologies for Swift, about the status of Swift on server.

You have been deeply involved in the work that led to Swift 3 recently. Would it be right to describe your role inside the Swift development team as advocating for Swift on the server? What were your main focus areas working on that release?

Chris Bailey: Since Swift became an open source project late last year, there’s been a large number of people from around the world who’ve been contributing ideas and development effort to improve Swift and bring it to other platforms. Myself and a few of my colleagues from IBM have been a part of that effort.

The team at IBM is focused on enabling Swift on the server use cases – and providing the necessary capabilities for Swift developers to create server applications and frameworks as easily as possible – is a goal that we’re working towards. For the Swift 3.0 release, this meant starting with ensuring that the support for Swift on the Linux platforms was as complete as possible, particularly in the availability of the Dispatch library for concurrency and enabling the Foundation library APIs.

Whilst there’s more to do in Foundation, as we move on to Swift 3.1 and Swift 4.0 we hope to be able to start to focus on some server specifics as well.

Swift 3 includes better support for server-side programming and Linux. Can you provide more details about this?

Bailey: The main advances in Swift 3.0 for server-side and Linux support were in the additional library and API support. One of the things we were keen to do was to make sure that we were implementing the most important APIs for Linux and server use cases first. To do this we took Kitura, the open source web framework that IBM has been developing, and used that as our test bed. We then built a number of sample applications that used various existing libraries, and used those to work out which APIs are most likely to be used and to provide specific tests. As Swift 3.0 evolved, we then kept in sync with the latest changes to check for regressions, including carrying out performance testing.

This identified some of the Foundation APIs like URLSession and Operation as being really key. Both of those use Dispatch for concurrency, as does Kitura itself, so that was a primary focus area.

What new or improved features does Kitura 1.0 include?

Bailey: At the start of 2016, Kitura provided a web framework that was fully capable of responding to URL requests. Over time we’ve been adding the features and functionality necessary to build real applications. This includes capabilities like authentication, templating, cross-site request forgery (CSRF) prevention, cross-origin resource sharing (CORS) support, logging, caching etc, as well as access to back-end data stores and services.

As we approached Swift 3.0 and Kitura 1.0, we also focused on performance, code coverage and stress-testing, building out more examples, demos and tutorials, and launching the website.

Of course, contributing to and building Kitura are only a couple of things that we’ve been working on. Last week we also released the IBM Bluemix Runtime for Swift, which includes the latest Swift versions and takes care of system dependencies, so it allows you to focus on writing your server-side Swift services. The Swift runtime includes all optimizations necessary to run in IBM Bluemix public, dedicated and local cloud deployments. We are also regularly updating the IBM Swift Package Catalog, the IBM Swift Sandbox and IBM Cloud Tools for Swift - each works really well on its own, together they provide an integrated developer experience for end-to-end Swift. All of these tools are available on the Swift@IBM website.

Rate this Article