github.com/webonyx/up@v0.7.4-0.20180808230834-91b94e551323/docs/05-runtimes.md (about)

     1  ---
     2  title: Runtimes
     3  ---
     4  
     5  Up supports a number of interpreted languages, and virtually any language which can be compiled to a binary such as Golang. Up does its best to provide idiomatic and useful out-of-the-box experiences tailored to each language. Currently first-class support is provided for:
     6  
     7  - Python
     8  - Golang
     9  - Node.js
    10  - Crystal
    11  - Clojure
    12  - Java
    13  - Static sites
    14  
    15  ## Node.js
    16  
    17  When a `package.json` file is detected, Node.js is the assumed runtime. By default the latest version supported by Lambda is used (nodejs8.10), see [Lambda Settings](#configuration.lambda_settings) for details.
    18  
    19  The `build` hook becomes:
    20  
    21  ```
    22  $ npm run build
    23  ```
    24  
    25  The server run by the proxy becomes:
    26  
    27  ```
    28  $ npm start
    29  ```
    30  
    31  ## Python
    32  
    33  When requirements.txt is present the build command becomes:
    34  
    35  ```
    36  $ mkdir -p .pypath/ && pip install -r requirements.txt -t .pypath/
    37  ```
    38  
    39  The server run by the proxy becomes:
    40  
    41  ```
    42  $ python app.py
    43  ```
    44  
    45  ## Golang
    46  
    47  When a `main.go` file is detected, Golang is the assumed runtime.
    48  
    49  The `build` hook becomes:
    50  
    51  ```
    52  $ GOOS=linux GOARCH=amd64 go build -o server *.go
    53  ```
    54  
    55  The `clean` hook becomes:
    56  
    57  ```
    58  $ rm server
    59  ```
    60  
    61  ## Crystal
    62  
    63  When a `main.cr` file is detected, Crystal is the assumed runtime. Note that this runtime requires Docker to be installed.
    64  
    65  The `build` hook becomes:
    66  
    67  ```
    68  $ docker run --rm -v $(pwd):/src -w /src tjholowaychuk/up-crystal crystal build --link-flags -static -o server main.cr
    69  ```
    70  
    71  The `clean` hook becomes:
    72  
    73  ```
    74  $ rm server
    75  ```
    76  
    77  ## Java
    78  
    79  When a `build.gradle` file is detected, Gradle is assumed, otherwise if `pom.xml` is found then Maven is used.
    80  
    81  ## Static
    82  
    83  When an `index.html` file is detected the project is assumed to be static.