Supported languages in Azure Functions
This article explains the levels of support offered for your preferred language when using Azure Functions. It also describes strategies for creating functions using languages not natively supported.
There are two levels of support:
- Generally available (GA) - Fully supported and approved for production use.
- Preview - Not yet supported, but expected to reach GA status in the future.
Languages by runtime version
The following table shows the .NET versions supported by Azure Functions. Select your preferred development language at the top of the article.
The supported version of .NET depends on both your Functions runtime version and your chosen execution model:
Your function code runs in a separate .NET worker process. Use with supported versions of .NET and .NET Framework. To learn more, see Develop .NET isolated worker process functions.
Supported version | Support level | Expected community EOL date |
---|---|---|
.NET 9 | Preview | See policy |
.NET 8 | GA | November 10, 2026 |
.NET 6 | GA | November 12, 2024 |
.NET Framework 4.8 | GA | See policy |
.NET 7 was previously supported on the isolated worker model but reached the end of official support on May 14, 2024.
For more information, see Guide for running C# Azure Functions in an isolated worker process.
The following table shows the language versions supported for Java functions. Select your preferred development language at the top of the article.
Supported version | Support level | Expected community EOL date |
---|---|---|
Java 21 (Linux-only) | Preview | September 2028 |
Java 17 | GA | September 2027 |
Java 11 | GA | September 2027 |
Java 8 | GA | November 30, 2026 |
For more information, see Azure Functions Java developer guide.
The following table shows the language versions supported for Node.js functions. Select your preferred development language at the top of the article.
Supported version | Support level | Expected community EOL date |
---|---|---|
Node.js 20 | GA | April 30, 2026 |
Node.js 18 | GA | April 30, 2025 |
Node.js 16 | GA | September 11, 2023* |
Node.js 14 | GA | April 30, 2023* |
*Support on Functions extended until June 30, 2024.
TypeScript is supported through transpiling to JavaScript. For more information, see the Azure Functions Node.js developer guide.
The following table shows the language version supported for PowerShell functions. Select your preferred development language at the top of the article.
Supported version | Support level | Expected community EOL date |
---|---|---|
PowerShell 7.4 | GA | November 8, 2024 |
PowerShell 7.2 | GA | November 8, 2024 |
For more information, see Azure Functions PowerShell developer guide.
The following table shows the language versions supported for Python functions. Select your preferred development language at the top of the article.
Supported version | Support level | Expected community EOL date |
---|---|---|
Python 3.11 | GA | October 2027 |
Python 3.10 | GA | October 2026 |
Python 3.9 | GA | October 2025 |
Python 3.8 | GA | October 2024 |
For more information, see Azure Functions Python developer guide.
For information about planned changes to language support, see Azure roadmap.
Language support details
The following table shows which languages supported by Functions can run on Linux or Windows. It also indicates whether your language supports editing in the Azure portal. The language is based on the Runtime stack option you choose when creating your function app in the Azure portal. This is the same as the --worker-runtime
option when using the func init
command in Azure Functions Core Tools.
Language | Runtime stack | Linux | Windows | In-portal editing |
---|---|---|---|---|
C# (isolated worker model) | .NET | ✓ | ✓ | |
C# (in-process model) | .NET | ✓ | ✓ | |
C# script | .NET | ✓ | ✓ | ✓ |
JavaScript | Node.js | ✓ | ✓ | ✓ |
Python | Python | ✓ | X | ✓ |
Java | Java | ✓ | ✓ | |
PowerShell | PowerShell Core | ✓ | ✓ | ✓ |
TypeScript | Node.js | ✓ | ✓ | |
Go/Rust/other | Custom Handlers | ✓ | ✓ |
For more information on operating system and language support, see Operating system/runtime support.
When in-portal editing isn't available, you must instead develop your functions locally.
Language major version support
Azure Functions provides a guarantee of support for the major versions of supported programming languages. For most languages, there are minor or patch versions released to update a supported major version. Examples of minor or patch versions include such as Python 3.9.1 and Node 14.17. After new minor versions of supported languages become available, the minor versions used by your functions apps are automatically upgraded to these newer minor or patch versions.
Note
Because Azure Functions can remove the support of older minor versions at any time after a new minor version is available, you shouldn't pin your function apps to a specific minor/patch version of a programming language.
Custom handlers
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.
Language extensibility
Starting with version 2.x, the runtime is designed to offer language extensibility. The JavaScript and Java languages in the 2.x runtime are built with this extensibility.
ODBC driver support
This table indicates the ODBC driver support for your Python functions:
Driver version | Python version |
---|---|
ODBC driver 18 | ≥ Python 3.11 |
ODBC driver 17 | ≤ Python 3.10 |