# System requirements (/docs/orm/v6/reference/system-requirements)

Location: ORM > v6 > Reference > System requirements

This page provides an overview of the system requirements for Prisma ORM.

System requirements [#system-requirements]

This section lists the software that Prisma ORM requires and the supported operating systems, along with runtime dependency requirements for specific operating systems.

Software requirements [#software-requirements]

The latest version of Prisma ORM requires the following software:

| Tool                  | Minimum required version       |
| :-------------------- | :----------------------------- |
| Node.js               | ^20.19.0, ^22.12.0, or ^24.0.0 |
| TypeScript (optional) | 5.4+                           |
| Yarn (optional)       | 1.19.2                         |

* Prisma ORM supports and tests all *Active LTS* and *Maintenance LTS* **Node.js** releases. [Releases that are not in these states like *Current*, and also odd-numbered versions](https://nodejs.org/en/about/releases/) probably also work, but are not recommended for production use.
* **TypeScript** is only required for TypeScript users.
* When using **Yarn 1**, `1.19.2` is the minimum version compatible with Prisma Client.

See also: [Supported database versions](/orm/v6/reference/supported-databases)

<details>
  <summary>
    Expand for earlier versions
  </summary>

  Prisma ORM v6 [#prisma-orm-v6]

  Prisma ORM v6 requires the following software:

  |                       | Minimum required version |
  | :-------------------- | :----------------------- |
  | Node.js               | 16.13 / 18.X / 20.X      |
  | TypeScript (optional) | 4.7+                     |
  | Yarn (optional)       | 1.19.2                   |
</details>

Operating systems [#operating-systems]

Prisma ORM is supported on macOS, Windows and most Linux distributions.

Linux runtime dependencies [#linux-runtime-dependencies]

Prisma ORM requires the following system libraries to be installed to work:

* OpenSSL 1.0.x, 1.1.x or 3.x
* zlib (`libz.so.1`)
* libgcc (`libgcc_s.so.1`)
* C standard library (glibc on most Linux distributions or musl libc on Alpine Linux)

The following two tables show the supported Linux distro families, OpenSSL versions and C standard libraries for each CPU architecture.

On `AMD64` (`x86_64`) architecture:

| Distro family    | OpenSSL version   | libc version |
| ---------------- | ----------------- | ------------ |
| Alpine           | 1.1.x, 3.x        | musl 1.2.x   |
| RHEL             | 1.0.x, 1.1.x, 3.x | glibc 2.17+  |
| Debian or others | 1.0.x             | glibc 2.19+  |
| Debian or others | 1.1.x, 3.x        | glibc 2.24+  |

On `ARM64` (`aarch64`) architecture:

| Distro family    | OpenSSL version   | libc version |
| ---------------- | ----------------- | ------------ |
| Alpine           | 1.1.x, 3.x        | musl 1.2.x   |
| RHEL             | 1.0.x, 1.1.x, 3.x | glibc 2.24+  |
| Debian or others | 1.0.x, 1.1.x, 3.x | glibc 2.24+  |

When Prisma ORM can not resolve the OpenSSL version on a system (e.g. because it is not installed), it will default to OpenSSL 1.1.x.

Systems that can run the supported Node.js versions will most likely have zlib and libgcc available. One notable exception is Google's Distroless images, where `libz.so.1` needs to be copied from a compatible Debian system.

Windows runtime dependencies [#windows-runtime-dependencies]

On Windows [Microsoft Visual C++ Redistributable 2015](https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe) or newer must be installed (which is by default the case on most modern installations).

macOS runtime dependencies [#macos-runtime-dependencies]

Prisma ORM supports macOS 10.15 or newer. There are no additional platform-specific requirements on macOS other than what is listed for all platforms in the [Software requirements](#software-requirements) section.

Troubleshooting [#troubleshooting]

There are some common problems caused by using outdated versions of the system requirements:

Unable to build a TypeScript project with @prisma/client [#unable-to-build-a-typescript-project-with-prismaclient]

Problem [#problem]

You see the following error when you try type-checking a project after you run `prisma generate`.

```bash wrap
./node_modules/.prisma/client/index.d.ts:10:33
Type error: Type expected.
   8 | export type PrismaPromise<A> = Promise<A> & {[prisma]: true}
   9 | type UnwrapTuple<Tuple extends readonly unknown[]> = {
> 10 |   [K in keyof Tuple]: K extends `${number}` ? Tuple[K] extends PrismaPromise<infer X> ? X : never : never
     |                                 ^
  11 | };
  12 |
  13 |
```

Solution [#solution]

Upgrade the TypeScript dependency in your project to a [version supported by Prisma ORM](#software-requirements). `npm install -D typescript`.

Unable to use groupBy preview feature [#unable-to-use-groupby-preview-feature]

Problem [#problem-1]

You see the following console error when you attempt to run an app that uses the `groupBy` preview feature:

```bash wrap
server.ts:6:25 - error TS2615: Type of property 'OR' circularly references itself in mapped type '{ [K in keyof { AND?: Enumerable<ProductScalarWhereWithAggregatesInput>; OR?: Enumerable<ProductScalarWhereWithAggregatesInput>; ... 4 more ...; category?: string | StringWithAggregatesFilter; }]: Or<...> extends 1 ? { ...; }[K] extends infer TK ? GetHavingFields<...> : never : {} extends FieldPaths<...> ? never : K...'.
6   const grouped = await prisma.product.groupBy({
                          ~~~~~~~~~~~~~~~~~~~~~~~~
7     by: ['category']
  ~~~~~~~~~~~~~~~~~~~~
8   });
  ~~~~
server.ts:6:48 - error TS2554: Expected 0 arguments, but got 1.
6   const grouped = await prisma.product.groupBy({
                                                 ~
7     by: ['category']
  ~~~~~~~~~~~~~~~~~~~~
8   });
  ~~~
```

Solution [#solution-1]

Upgrade the TypeScript dependency in your project to a [version supported by Prisma ORM](#software-requirements). `npm install -D typescript`.

## Related pages

- [`Connection URLs`](https://www.prisma.io/docs/orm/v6/reference/connection-urls): Learn about the format and syntax Prisma ORM uses for defining database connection URLs for PostgreSQL, MySQL and SQLite.
- [`Database features matrix`](https://www.prisma.io/docs/orm/v6/reference/database-features): Learn which database features are supported in Prisma ORM and how they map to the different Prisma ORM tools.
- [`Environment variables reference`](https://www.prisma.io/docs/orm/v6/reference/environment-variables-reference): This page gives an overview of all environment variables available for use.
- [`Error message reference`](https://www.prisma.io/docs/orm/v6/reference/error-reference): Prisma Client, Migrate, Introspection error message reference
- [`Preview features`](https://www.prisma.io/docs/orm/v6/reference/preview-features): Previews are typically available behind a feature flag or require some form of opt-in.