Guide

Installing

Quillo is one binary, quillo. Download it built, or build it from its source with Cargo, which needs two things on your machine: Rust and a C compiler. Everything else it uses, Cargo downloads by itself. This page lists what each system needs, how to check a machine in one command, and what is optional.

Download

Each release has quillo built for:

SystemFile
Linux, x86-64quillo-<version>-x86_64-unknown-linux-gnu.tar.gz
Linux, ARMquillo-<version>-aarch64-unknown-linux-gnu.tar.gz
macOS, Apple siliconquillo-<version>-aarch64-apple-darwin.tar.gz
macOS, Intelquillo-<version>-x86_64-apple-darwin.tar.gz
Windowsquillo-<version>-x86_64-pc-windows-msvc.zip

Unpack it and put quillo on your PATH. The Linux builds of 0.8.0 are linked against glibc 2.17, and start on CentOS 7, CloudLinux 7 and 8, AlmaLinux 8 and anything newer (see Shared hosting); 0.6.0's needed glibc 2.35 or later. They are built without quillo app (desktop windows): build from source with --features app for that. Beside each archive is a .sha256 that checks the download:

shasum -a 256 -c quillo-v0.8.0-aarch64-apple-darwin.tar.gz.sha256   # macOSsha256sum -c quillo-v0.8.0-x86_64-unknown-linux-gnu.tar.gz.sha256    # Linux

The rest of this page is for building it yourself.

What you need

Needed forHow to get it
Rust 1.94 or laterbuilding Quillorustup.rs, then rustup update stable to stay current
A C compilerbuilding: a few dependencies compile C (the bundled SQLite, ring, mimalloc)macOS: Xcode's command line tools. Linux: gcc or clang. Windows: Visual Studio's C++ build tools
gitgetting the sourcegit-scm.com, or your package manager
About 1 GB of diskCargo's compiled dependencies, kept in target/ to make the next build fast. Quillo itself is a binary of 20 to 25 MB; the tests take about 6 GB moretarget/ can be deleted once quillo is installed

Check your machine

The repository has a script that checks all of this, says what to install for anything missing, and with --build builds Quillo and runs the sample app to prove it works:

# macOS, Linux, WSLsh scripts/doctor.sh --build# Windows, in PowerShellpowershell -ExecutionPolicy Bypass -File scripts\doctor.ps1 -Build

It installs nothing: each line it marks missing comes with the command that fixes it. It also points out a quillo on your PATH older than the one just built: that one runs when you type quillo, and fails on newer code as if the code were wrong (cargo install --path . replaces it).

To build and run Quillo  ok       Rust 1.99.0  ok       C compiler (Apple clang version 21.0.0)  ok       17 GB free on disk  ok       port 8080 is free (quillo run's default)Optional: the tests, and extras  ok       Node 24.11.0  --       Chrome or Chromium: the browser tests are skipped without it           install it, or set QUILLO_CHROME to its path

macOS

# The C compiler, then Rustxcode-select --installcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shgit clone https://github.com/quillolang/quillo.git && cd quillosh scripts/doctor.sh --build

Linux

The C compiler and git, from your distribution, then Rust from rustup (a distribution's own Rust is often older than 1.94):

sudo apt-get install build-essential git curl    # Debian, Ubuntusudo dnf install gcc make git                    # Fedorasudo pacman -S base-devel git                    # Arch# Then Rustcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shgit clone https://github.com/quillolang/quillo.git && cd quillosh scripts/doctor.sh --build

Windows

Rust's Windows toolchain links with Microsoft's C++ build tools. rustup-init.exe offers to install them; with winget, all three come in a PowerShell window:

winget install Microsoft.VisualStudio.2022.BuildTools `    --override "--passive --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"winget install Rustlang.Rustupwinget install Git.Git

Then, in a new PowerShell window (so it sees them):

git clone https://github.com/quillolang/quillo.git; cd quillopowershell -ExecutionPolicy Bypass -File scripts\doctor.ps1 -Build

Quillo is built and tested on Windows in CI; macOS and Linux are where it is used most. In WSL, follow the Linux steps.

Building

cargo build --release    # the binary is target/release/quillocargo install --path .   # or: build it and put quillo on your PATH

Without a clone, Cargo can fetch, build and install it in one step:

cargo install --git https://github.com/quillolang/quillo quillo

Then run the sample app in the clone, quillo run app/main.qwe --watch, and open http://localhost:8080. --watch is an option of quillo run: it reloads the program and refreshes its pages when a file changes. The options lists the others.

What Cargo downloads

The first build fetches Quillo's Rust dependencies from crates.io and builds them; none of them is installed by hand, and none needs a library from the system:

Crates
HTTP and waitingmio, httparse, tokio, ureq (requests a program makes)
Databasesrusqlite with SQLite built in, tokio-postgres and postgres, mysql_async
TLSrustls and webpki-roots: no OpenSSL
Compiled numberscranelift-*, the code generator for compiled numbers
Real timewtransport, for WebTransport
The restimage, pulldown-cmark (Markdown), argon2 and sha2 (passwords, hashes), serde_json, flate2, libmimalloc-sys (the allocator)

Three of them are features, on by default, that a smaller build can leave out:

FeatureBringsWithout it
mysqlMySQL and MariaDB for dbSQLite and PostgreSQL still work
jitcompiled numbers (Cranelift)arithmetic runs in the interpreter, with the same answers
realtimeWebTransport for channels and mediapages use a WebSocket
# For example, without MySQL and WebTransport:cargo build --release --no-default-features --features jit

One more, app, is off by default: cargo build --release --features app adds quillo app, a program in a native window (wry, tao, muda).

Optional: the tests, and extras

Needed forFound by
Node 22 or laterthe component compiler's tests, the browser tests, the VS Code extension; the money tests compare with Node 24's CLDR data, and skip on older onesnode on your PATH
Chrome or Chromiumthe browser tests (skipped without it)the usual places, or QUILLO_CHROME
PostgreSQLits tests, which start a server of their own (skipped without it)initdb and pg_ctl on your PATH or in Homebrew's folders, or QUILLO_TEST_PG_BIN
MariaDBits tests, the same waymariadbd and mariadb-install-db, or QUILLO_TEST_MYSQL_BIN
limerthe tests of several servers behind itLIMER, or ../limer/limer
The networkthe Rust (.qwer) tests, whose first build fetches a crate; they are not skippedcrates.io
WebKitGTK 4.1, GTK 3 (Linux)quillo appsudo apt-get install libwebkit2gtk-4.1-dev libgtk-3-dev
WebView2 (Windows)quillo apppart of Windows 11; an installer for Windows 10

cargo test runs everything it can and says what it skipped; QUILLO_TEST_LOG=1 shows the output of the servers the tests start.

Which systems

Releases are built for Linux and macOS, on x86-64 and ARM, and for Windows (see Download). On Windows, quillo dap (the debugger) is not there yet, and quillo run's --with option (quillo run main.qwe --with "npx tailwindcss ...", a command run beside the program) needs a sh on the PATH.

Running a program

The quillo binary is all a program needs to run (see Hosting for putting one online): SQLite is built in. A program that uses PostgreSQL or MySQL needs a server to connect to, like any program. One with Rust files (.qwer) builds them with Cargo the first time it starts, so it needs Rust there too, unless you build them beforehand with quillo build app.qwe and deploy .quillo/native/ with it.

Thread
26Useful? Like it, or add to its thread below.

Thread 0 posts

On Installing: questions, tips, corrections, and code that uses it.

No posts yet. The first one opens the thread.