Supported languages in Azure Functions

This article explains the levels of support offered for languages that you can use with Azure Functions.

Levels of support

There are three 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.
  • Experimental - Not supported and might be abandoned in the future; no guarantee of eventual preview or GA status.

Languages by runtime version

Two versions of the Azure Functions runtime are available. The following table shows which languages are supported in each runtime version.

Language 1.x 2.x 3.x1
C# GA (.NET Framework 4.7) GA (.NET Core 2.2) Preview (.NET Core 3.x)
JavaScript GA (Node 6) GA (Node 8 & 10) Preview (Node 8 & 10)
F# GA (.NET Framework 4.7) GA (.NET Core 2.2) Preview (.NET Core 3.x)
Java N/A GA (Java 8) Preview (Java 8)
PowerShell Experimental Preview (PowerShell Core 6) Preview (PowerShell Core 6)
Python Experimental GA (Python 3.6.x) Preview (Python 3.6.x)
TypeScript Experimental GA2 Preview2
Bash Experimental N/A N/A
Batch (.cmd, .bat) Experimental N/A N/A
PHP Experimental N/A N/A

1The Functions v3.x runtime is in preview.
2Supported through transpiling to JavaScript.

For information about planned changes to language support, see Azure roadmap.

Experimental languages

The experimental languages in version 1.x don't scale well and don't support all bindings.

Don't use experimental features for anything that you rely on, as there is no official support for them. Support cases should not be opened for problems with experimental languages.

The version 2.x runtime doesn't support experimental languages. Support for new languages is added only when the language can be supported in production.

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.

Next steps

To learn more about how to develop functions in the supported languages, see the following resources: