Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Azure Functions Runtime 2.0 Overview
The next major version of the Azure Functions runtime, Azure Functions runtime 2.0, brings a series of enhancements, changes and new features. This document outlines the most significant ones, contrasting them with 1.0 where appropriate.
Key features and changes
.NET Core/Cross platform support: The runtime has been ported to run on .NET Core 2.0, allowing it to run on all platforms supported by .NET Core (Windows, macOS, Linux, etc.). This enables cross platform development and hosting scenarios not previously supported.
Binding extensibility: Binding extensibility has been added to the WebJobs SDK and is now supported by the Azure Functions runtime, enabling:
- Third party binding extensions support
- A lighter runtime/execution environment, where only the bindings in use are known and loaded by the runtime.
- Decoupling between the runtime and bindings, also reducing the number of fixed dependencies and allowing extensions to be versioned and released independently. Users can, for example, opt to upgrade to a version of an extension that relies on a newer of an underlying SDK.
All built-in Azure Functions bindings have adopted this model and (with the exception of the Timer trigger and the HTTP trigger) are no longer included by default. Those bindings will be automatically installed when creating functions through tools like Visual Studio or through the portal.
Language extensibility: A new language extensibility model has been introduced, bringing the following benefits/differences:
- Facilitates language integration with Azure Functions
- Uses an out-of-process function execution model
- Decouples language implementations from the runtime
Currently, the following languages are supported in version 2.0 of the runtime:
- C# (pre-compiled and scripting)
- F# (pre-compiled)
- Java (preview)