site/contents/download.md
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
-----
content-type: "page"
title: "Download"
-----
{@ _defs_.md || 0 @}
You can download one of the following pre-built min binaries:
* {#release||{{$version}}||macosx||macOS||x64#}
* {#release||{{$version}}||windows||Windows||x64#}
* {#release||{{$version}}||linux||Linux||x64#}
* {#release||{{$version}}||linux||Linux||x86#}
* {#release||{{$version}}||linux||Linux||arm#}
{#release -> [min v$1 for $3 ($4)](https://github.com/h3rald/min/releases/download/v$1/min\_v$1\_$2\_$4.zip) #}
{{guide-download}}
## Building from Source
Alternatively, you can build min from source as follows:
1. Download and install [nim](https://nim-lang.org).
2. Download and build [Nifty](https://github.com/h3rald/nifty), and put the nifty executable somewhere in your [$PATH](class:kwd).
3. Clone the min [repository](https://github.com/h3rald/min).
4. Navigate to the min repository local folder.
5. Run **nifty install** to download min’s dependencies.
7. Run **nim c -d:release min.nim**.
### Additional build options
#### -d:ssl
If the **-d:ssl** flag is specified when compiling, min will be built with SSL support, so it will be possible to perform HTTPS requests with the {#link-module||http#}. This means that the resulting **min** executable will no longer be self-contained and it will require the OpenSSL dynamic library to be available on your system.
#### -d:lite
If the **d:lite** flag is specified, an even more minimal executable file will be generated, however the following functionalities will not be available:
* The {#link-module||crypto#}
* The {#link-module||net#}
* The {#link-module||http#}
* The {#link-module||math#}
* The {#link-operator||sys||zip#} and {#link-operator||sys||unzip#} operators.
## Running then min Shell
To start min shell, run [min -i](class:cmd). You will be presented with a prompt displaying the path to the current directory:
> %min-terminal%
> [[/Users/h3rald/test]$](class:prompt)
You can type min code and press [ENTER](class:kbd) to evaluate it immediately:
> %min-terminal%
> [[/Users/h3rald/test]$](class:prompt) 2 2 +
> {1} -> 4
> [[/Users/h3rald/test]$](class:prompt)
The result of each operation will be placed on top of the stack, and it will be available to subsequent operation
> %min-terminal%
> [[/Users/h3rald/test]$](class:prompt) dup *
> {1} -> 16
> [[/Users/h3rald/test]$](class:prompt)
To exit min shell, press [CTRL+C](class:kbd) or type [exit](class:cmd) and press [ENTER](class:kbd).
## Executing a min Program
To execute a min script, you can:
* Run `min -e:"... program ..."` to execute a program inline.
* Run `min myfile.min` to execute a program contained in a file.
min also supports running programs from standard input, so the following command can also be used (on Unix-like system) to run a program saved in [myfile.min](class:file):
> %min-terminal%
>
> [$](class:prompt) cat myfile.min | min
|