Inko's virtual machine and compiler are written in Rust, bundled into a single executable compiled using Rust's "cargo" package manager/build tool.
Inko officially supports Linux, macOS, and Windows. BSDs and other Unix-like operating systems should also work, but are not officially supported at this time.
Windows users can build Inko using the Visual Studio build tools, or using a Unix compatibility layer such as MSYS2.
- A 64-bits platform, 32-bits platforms are not supported.
- A CPU with AES-NI support
- Rust 1.62 or newer
For Unix based platforms, the following must also be available
- sh, bash or a compatible shell
- A C compiler such as GCC or clang
These dependencies are not needed when building for Windows when using the Visual studio build tools. They are needed when building under MSYS2 or similar Unix compatibility layers.
The easiest way to install Inko is to use Inko's own version manager: ivm. ivm supports all the platforms officially supported by Inko, including Windows. For more information on how to install and use ivm, refer to the ivm guide.
Once installed, you can install Inko as follows:
ivm install latest # Installs the latest version of Inko ivm install 0.10.0 # Installs version 0.10.0
To install Inko 0.10.0, run the following:
docker pull inkolang/inko:0.10.0
podman pull inkolang/inko:0.10.0
You can then run Inko as follows:
docker run inkolang/inko:0.10.0 inko --version
podman run inkolang/inko:0.10.0 inko --version
A full list of all available tags is found here.
Two AUR packages are provided:
inko-git. These can be installed
using your favourite AUR wrapper:
yay -S inko
pacaur -S inko
pikaur -S inko
git clone https://aur.archlinux.org/inko.git cd inko makepkg -si
Inko is available in Homebrew:
brew install inko
The Homebrew formula is maintained by Homebrew and its contributors. For issues specific to the formula (e.g. it doesn't work on a certain version of macOS), please report issues in the homebrew-core issue tracker.
When building from Git, first clone the repository:
git clone https://gitlab.com/inko-lang/inko.git cd inko
Or use a release tarball:
mkdir 0.10.0 curl https://releases.inko-lang.org/0.10.0.tar.gz -o 0.10.0.tar.gz tar -C 0.10.0 -xf 0.10.0.tar.gz cd 0.10.0
To compile a development build, run
cargo build. For a release build,
cargo build --release instead.
By default Inko uses the standard library provided in the Git repository,
libstd/src. If you wish to use a different directory, set the
INKO_LIBSTD environment variable to a path of your choosing. For example:
INKO_LIBSTD=/tmp/libstd/src cargo build --release
This builds Inko such that it uses the standard library located at
When building from source you can set certain feature flags to customise the installation. These flags are specified like so:
cargo build --release --features foo,bar
The following feature flags are available:
|libffi-system||Disabled||Dynamically link against libffi, instead of compiling it from source.|
|jemalloc||Disabled||Use jemalloc instead of the system allocator.|
To ease the process of building a package of Inko, consider using the Makefile provided as part of each release. Using this Makefile, the process (at least in most cases) is as simple as running the following:
make build PREFIX=/usr make install PREFIX=/usr DESTDIR=./chroot
PREFIX variable specifies the base path of all files to install, while
DESTDIR specifies a directory to move the files into.
PREFIX variable must be specified for both
make build and
make install. The
DESTDIR variable defaults to the value of the
When packaging Inko it's best to use a system wide installation of FFI, instead of building it from source when compiling Inko. To do so, build Inko as follows:
make build FEATURES=libffi-system
Or if you don't want to use make:
cargo build --release --features libffi-system