Supported Languages

Render natively supports Node.js / Bun, Python, Ruby, Go, Rust, and Elixir. While creating a service, just link your GitHub/GitLab/Bitbucket repo, choose the runtime for your language, and specify a branch to deploy.

Plus, you can use virtually any programming language if you deploy your code as a Docker image.

Set your language version

By default, each Render runtime uses a recent, actively supported version of its associated language (listed in the table below).

However, we still recommend setting a language version for your service. Doing so helps you ensure consistent behavior between Render and your other environments (such as development).

See the table to learn how to set your language version:

LanguageDefault Version*How to Set a Version

Node.js

22.12.0

Set the NODE_VERSION environment variable, or add a .node-version file to your project root containing only the version number:

21.1.0

For additional options, see Setting Your Node.js Version.

Bun

1.1.0

Set the BUN_VERSION environment variable:

1.1.0

Python

3.11.11

Set the PYTHON_VERSION environment variable.

For details, see Setting Your Python Version.

Ruby

3.3.6

Set the ruby directive in your Gemfile, or add a .ruby-version file to your project root containing only the version number:

3.1.4

For details, see Setting Your Ruby Version.

Go1.23

Render’s native Go environment always uses the latest stable Go 1.x version. You can’t set a different version unless you deploy a docker image.

Rust

stable

Set the RUSTUP_TOOLCHAIN environment variable, or add a rust-toolchain file to your project root containing only the toolchain version:

beta

For details, see Specifying a Rust Toolchain.

Elixir

1.16.1

Set the ELIXIR_VERSION and/or ERLANG_VERSION environment variables.

If you don’t set ERLANG_VERSION, Render automatically uses an Erlang version that’s compatible with your ELIXIR_VERSION.

For details, see Setting Your Elixir and Erlang Versions.

Other languages

N/A

To use any language besides those listed above, deploy your code as a Docker image.

*Render updates the default version for each language over time.

With the exception of Go and Rust, a particular service’s default language version depends on when that service was first created. For details, see the version documentation for your language (linked from the table above).

Minimum supported language versions

As of September 1, 2024, newly created Render services cannot use versions of certain languages earlier than those listed below:

LanguageMinimum Supported Version
Python3.7.3
Ruby3.1.0
Elixir1.12.0
Erlang24.3.4

A preexisting service can continue using an older version until July 1, 2025. After that date, the service will continue to run, but all future builds will fail until you update the service to use a supported version.

Render periodically updates the underlying version of Debian used by all services.

The language versions above correspond to the minimum supported versions for Debian 12.x bookworm.

Docker support

When you deploy a Docker image on Render, it can use virtually any programming language and framework. This is true regardless of whether you:

Learn more about Docker versus native runtimes.