Skip to content

Runtimes

Futou manages three categories of runtimes:

Languages

Runtimes that provide a CLI binary and are activated via PATH shims.

RuntimeVersionsSourceActivation
PHP8.2, 8.3, 8.4windows.php.netfutou use php 8.4.23
Node.js20, 22nodejs.orgfutou use nodejs 22.23.1
Python3.12, 3.13python.org (embeddable)futou use python 3.13.3
Deno2.2, 2.3deno.landfutou use deno 2.3.8

Databases

Runtimes that run as server processes with data directory initialization.

RuntimeVersionsDefault PortInit Command
MariaDB10.11, 11.43306mariadb-install-db
PostgreSQL16.6, 17.25432initdb

Web Servers

Runtimes that serve HTTP with generated configuration files.

RuntimeVersionsDefault PortConfig
Apache2.4.6680httpd.conf (auto-generated)
Nginx1.27.480nginx.conf (auto-generated)

Installation Flow

All runtimes follow the same install pipeline:

  1. Catalogue lookup — find download URL and checksum
  2. Download — aria2c with progress tracking
  3. Verify — SHA256 checksum
  4. Extract — zip or tar.gz to %APPDATA%\.futou\runtimes\<name>\<version>\
  5. Register — update state.json

Activation vs Starting

  • Activation (use/activate): Makes runtime binaries available in PATH. Applies to languages and CLI tools.
  • Starting (start): Launches a server process in the background. Applies to databases and web servers.

You can activate a database (to get its CLI tools) and start it (to run the server) independently.