Supported languages in Azure Functions
This article explains the levels of support offered for languages that you can use with Azure Functions. It also describes strategies for creating functions using languages not natively supported.
Levels of support
There are two levels of support:
- Generally available (GA) - Fully supported and approved for production use.
- Preview - Not yet supported but is expected to reach GA status in the future.
Languages by runtime version
Three versions of the Azure Functions runtime are available. The following table shows which languages are supported in each runtime version.
|C#1||GA (.NET Framework 4.8)||GA (.NET Core 2.12)||GA (.NET Core 3.1)
GA (.NET 5.0)
|F#||GA (.NET Framework 4.8)||GA (.NET Core 2.12)||GA (.NET Core 3.1)|
|Java||N/A||GA (Java 8)||GA (Java 11 & 8)|
|PowerShell||N/A||GA (PowerShell Core 6)||GA (PowerShell 7 & Core 6)|
|Python||N/A||GA (Python 3.7 & 3.6)||GA (Python 3.8, 3.7, & 3.6)
Preview (Python 3.9)
1 An experimental version of Azure Functions is available that lets you use the .NET 6.0 preview. To learn more, see the Azure Functions v4 early preview page.
2 .NET class library apps targeting runtime version 2.x runs on .NET Core 3.1 in .NET Core 2.x compatibility mode. To learn more, see Functions v2.x considerations.
See the language-specific developer guide article for more details about supported language versions.
For information about planned changes to language support, see Azure roadmap.
Custom handlers are lightweight web servers that receive events from the Azure Functions host. Any language that supports HTTP primitives can implement a custom handler. This means that custom handlers can be used to create functions in languages that aren't officially supported. To learn more, see Azure Functions custom handlers.
To learn more about how to develop functions in the supported languages, see the following resources: