Docs menu
Language Support
Primcloud detects your app's language from files in the repo and runs the right toolchain, with no config for the happy path.
On this page
Primcloud supports ten languages and runtimes out of the box: .NET, Bun, Go, Java, Node.js, PHP, Python, Ruby, Rust, and Scala. You don't tell Primcloud what your app is written in. It figures that out from files in your repo (package.json, composer.json, Gemfile, Cargo.toml, and so on), then runs the right toolchain to install dependencies, compile whatever needs compiling, and package everything into a runnable image. The happy path is zero config. Every language has escape hatches for the cases where it isn't.
Each language has its own section below covering how Primcloud detects it, which runtime versions are supported and how to pin one, which package managers and lockfiles are recognized, how to customize the build, and what to look at when something goes wrong.
Supported languages#
- .NET: C#, F#, and Visual Basic apps on the .NET SDK, including ASP.NET Core.
- Bun: Bun as runtime and package manager. Also builds frontend assets for Ruby, PHP, and Rust apps.
- Go: Go modules for dependencies. Go 1.16 or newer.
- Java: Maven and Gradle projects on the OpenJDK.
- Node.js: npm, pnpm, and Yarn. Framework guides for Next.js and Express.
- PHP: Composer, served by nginx or Apache with PHP-FPM. Framework guide for Laravel.
- Python: pip, Poetry, and uv. Framework guides for Django and Flask.
- Ruby: Bundler-managed
Gemfileprojects. Framework guide for Rails. - Rust: Cargo release builds of every binary in a package or workspace.
- Scala: sbt-driven builds on the JVM.
How language detection works#
Primcloud reads your repo and picks the toolchain that matches the files it finds: a package.json triggers the Node.js toolchain (or Bun, when a Bun lockfile sits beside it), a composer.json triggers PHP, a Gemfile triggers Ruby, a Cargo.toml triggers Rust, and so on. If your app spans two languages (a PHP app with a Node.js asset pipeline, say), Primcloud runs both toolchains in the right order. If nothing matches, the deployment fails with a clear "no language detected" error before it starts building.
Detection specifics per language (which files trigger it, what runs when both are present, and how to nudge Primcloud toward a specific toolchain) live in each language's X on Primcloud page.