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.