Skip to content

Supported languages

Cyril Rohr edited this page Jun 18, 2022 · 3 revisions

Apps can be packaged by applying one or more buildpacks on a folder containing your application's code. pkgr and Packager.io maintain a list of natively supported buildpacks, but you can also reference your own.

Natively supported languages

  • Ruby
  • NodeJS
  • Go
  • Python

Custom languages

You can reference specific buildpacks during your build. Assuming the buildpack supports the target distribution, you can then package apps written in any kind of language.

You could also write your own, for instance to compile C/C++ code, or package any kind of artefact (static website, docker image, etc.).

What is a buildpack?

The concept of buildpack was introduced by Heroku. It is a simple API to define what needs to be done to generate a self-contained version of an application, ready to be deployed. You can find more about the Buildpack API by following this link.

A buildpack has three parts:

  1. a detection step, where the buildpack attempts to find out whether it can process the application (e.g. the Ruby buildpack checks whether a Gemfile exists, among other things).

  2. compilation step, where the buildpack will download dependencies, launch tasks, and generally make everything needed to "compile" the application into a self-contained artefact.

  3. release step, which is used to set environment variables and various other things needed by the application to run.