--- title: "Functions Stack" url: https://docs.catalyst.zoho.com/en/serverless/help/functions/stack/ description: "Catalyst Functions are cloud-based, custom-built, serverless coding structures that contain the intense business logic of your application" last_updated: 2026-06-03T16:27:08Z service: Serverless type: general --- # Functions Stack As mentioned earlier, Catalyst supports three programming environments to develop the server-side functions in: Java,Node.js and Python. ### Java Functions Catalyst provides a rich Java SDK containing classes and methods that includes the definitions of each Catalyst component. Catalyst supports the following versions of [Java](https://docs.catalyst.zoho.com/en/sdk/java/v1/overview/): * **Java 25** * **Java 21** * **Java 17** * **Java 11** * **Java 8** When you initialize a Java function in the CLI, the Java SDK will be downloaded and installed in your local system. You can learn more about Java classes and writing a Java function in detail from the [Java SDK documentation](https://docs.catalyst.zoho.com/en/sdk/java/v1/overview/). You can also manually [download the Java SDK bundle](https://docs.catalyst.zoho.com/en/getting-started/set-up-a-catalyst-project/developer-tools/) from the Catalyst console and add it in your function's directory. A Java function's directory is set up with three basic components by default, when you initialize the function: 1. The main `.java` function file 2. The `catalyst-config.json` configuration file 3. The JAR library files in a folder named `lib` You can learn about these in detail from the [**Project Directory Structure help page**](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/functions-directory/). ### Node.js Functions Catalyst provides an efficient Node.js SDK package containing methods and other necessary elements that define the behavior of the Catalyst components in the Node.js environment. Catalyst supports the following versions of [Node.js](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/overview/): * **Node.js 24** * **Node.js 22** * **Node.js 20** * **Node.js 18** * **Node.js 16** * **Node.js 14** * **Node.js 12** (This runtime has reached its EOL) The SDK package is installed as a part of the node modules folder, which also contains several Node packages with individual library files, license files, and configuration files, that are essential for the execution of your Node.js functions. You can learn more about the Node.js SDK package and writing a Node.js function from the [Node.js SDK documentation](https://docs.catalyst.zoho.com/en/sdk/nodejs/v2/overview/). When you initialize a Node.js function from the CLI, or create it from the console, you can choose to include the Node module dependencies. If you create the function without the dependencies, the function's directory will contain: 1. The main `.js` function file 2. The `catalyst-config.json` configuration file 3. `[package.json](https://docs.npmjs.com/files/package.json)` If you create the function with dependencies, the function's directory will contain: 1. The main `.js` function file 2. The `catalyst-config.json` configuration file 3. `[package.json](https://docs.npmjs.com/files/package.json)` 4. Node modules 5. `[package-lock.json](https://docs.npmjs.com/configuring-npm/package-lock-json.html)` You can learn about these in detail from the [Project Directory Structure help page](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/functions-directory/). You can also manually install the latest Node.js SDK package any time by executing this CLI command: ```sh npm install zcatalyst-sdk-node ``` You can also install a specific supported version in this way: ```sh npm install zcatalyst-sdk-node@2.1.1 ``` ### Python Functions Catalyst provides an efficient [Python SDK package](https://docs.catalyst.zoho.com/en/sdk/python/v1/overview) containing modules and classes that define the behaviour of the Catalyst components in the Python environment. Catalyst supports the following versions of [Python](https://docs.catalyst.zoho.com/en/sdk/python/v1/overview): * **Python 3.13** * **Python 3.12** * **Python 3.11** * **Python 3.10** On initialization of a Python function, the Python SDK package is automatically installed in the functions directory of your Catalyst project. When the package is installed, an entry is made in the [`requirements.txt`](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/functions-directory/#requirementstxt-file) file present within the functions directory. This file also contains the list of other installed dependencies that are mandatory for the execution of certain Python modules and classes. You can learn more about the Python SDK package and writing a Python function in detail from the [Python SDK documentation](https://docs.catalyst.zoho.com/en/sdk/python/v1/overview). The function's directory will contain the following files : 1. The `main.js` function file 2. The `catalyst-config.json` configuration file 3. `[requirements.txt](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/functions-directory/#requirementstxt-file)` You can learn about these in detail from the [Project Directory Structure](https://docs.catalyst.zoho.com/en/cli/v1/project-directory-structure/functions-directory/#python-modules-and-function-dependencies) help page. You can also manually install the Python SDK package any time by executing this CLI command : ```python pip install zcatalyst-sdk ```