What’s happening with IBM Cloud Functions and Swift?

I’m excited to announce that IBM Cloud Functions officially supports Swift 4.2, which has been optimized for latency and local caching.

The new Swift 4.2 runtime leverages a new web proxy built with Go that replaces the previous Python web proxy. The web proxy allows action invocations to respond faster by providing lower latency for blocking calls. In addition, the web proxy provides some local caching on container re-use when hitting a warm invocation. Since the Swift program doesn’t exit after the invocation returns the result, the next invocation can take advantage of local caching such as global instances in memory or connections pools.

Ready to try it out?

Swift 4 offers the ability to use Codable types for input and output. In this example, the function takes a Codable “Input” and responds with a Codable “Output.”

  1. Create the following Swift file.

    struct Input: Codable {
    let name: String?
    struct Output: Codable {
    let body: String
    func main(param: Input, completion: (Output?, Error?) -> Void) -> Void {
    let result = Output(body: "Hello \(param.name ?? "IBM Cloud")!")
    completion(result, nil)
  2. Create the helloSwift action.ibmcloud fn action update helloSwift main.swift --kind swift:4.2 --web true

  3. Invoke the action.

    ibmcloud fn action invoke helloSwift -r
    "body": "Hello IBM Cloud!"
  4. Get the URL for the web action.

    ibmcloud fn action get helloSwift --url

Using a single file is recommended only for the development of quick demos. For production, it is better to pre-compile your Swift action as this avoids large latency on cold starts. It also allows you to compile your code and leverage any third-party libraries and dependencies.

How much faster is Swift 4.2?

Swift 4.2 is much faster than Swift 3.1.1 or Swift 4.1 as you can see in the graph below comparing warm invocation performance. Start new projects using Swift 4.2 or migrate any existing actions.

How do I learn more?

To set up a project and compile your Swift 4.2 Actions, check out the IBM Cloud Functions documentation.


More from Announcements

IBM TechXchange underscores the importance of AI skilling and partner innovation

3 min read - Generative AI and large language models are poised to impact how we all access and use information. But as organizations race to adopt these new technologies for business, it requires a global ecosystem of partners with industry expertise to identify the right enterprise use-cases for AI and the technical skills to implement the technology. During TechXchange, IBM's premier technical learning event in Las Vegas last week, IBM Partner Plus members including our Strategic Partners, resellers, software vendors, distributors and service…

Introducing Inspiring Voices, a podcast exploring the impactful journeys of great leaders

< 1 min read - Learning about other people's careers, life challenges, and successes is a true source of inspiration that can impact our own ambitions as well as life and business choices in great ways. Brought to you by the Executive Search and Integration team at IBM, the Inspiring Voices podcast will showcase great leaders, taking you inside their personal stories about life, career choices and how to make an impact. In this first episode, host David Jones, Executive Search Lead at IBM, brings…

IBM watsonx Assistant and NICE CXone combine capabilities for a new chapter in CCaaS

5 min read - In an age of instant everything, ensuring a positive customer experience has become a top priority for enterprises. When one third of customers (32%) say they will walk away from a brand they love after just one bad experience (source: PWC), organizations are now applying massive investments to this experience, particularly with their live agents and contact centers.  For many enterprises, that investment includes modernizing their call centers by moving to cloud-based Contact Center as a Service (CCaaS) platforms. CCaaS solutions…

See what’s new in SingleStoreDB with IBM 8.0

3 min read - Despite decades of progress in database systems, builders have compromised on at least one of the following: speed, reliability, or ease. They have two options: one, they could get a document database that is fast and easy, but can’t be relied on for mission-critical transactional applications. Or two, they could rely on a cloud data warehouse that is easy to set up, but only allows lagging analytics. Even then, each solution lacks something, forcing builders to deploy other databases for…