System requirements

Visao runs on Linux, Windows and macOS hosts. The analyser binary links statically against most of its C/C++ runtime stack (LLVM, ANTLR, fmt, tree-sitter). Each host therefore needs only libc and a small set of shared libraries for terminal handling and TLS.

Supported host/arch combinations

(T) marks the combinations that the project CI matrix validates on every commit.

Host

Architecture

Support

Linux

x86_64

+ (T)

Windows

x86_64

+ (T)

macOS

arm64

+ (T)

macOS

x86_64

+

The release tarballs cover every row of the table.

Per-platform details

  • Linux system requirements: supported distributions and the small set of runtime libraries needed beyond the static link.

  • Windows system requirements: tested Windows editions and terminal considerations.

  • For macOS: install the Xcode Command Line Tools (xcode-select --install) so the analyser can find a working clang for toolchain probing. No other system packages are needed.

Disk and memory

Sized for analysis of typical projects:

  • Disk. The release tree is ~250 MB unpacked (binaries + stdlib annotations + LLVM blob). The toolchain probe cache is text and stays under 100 KB.

  • RAM. Analysis of a single mid-sized C/C++ TU peaks around 300-500 MB. For server mode with several concurrent analyses, multiply by --server-max-analyses. Out-of-memory failures show up as runOneSubJob aborts.

  • CPU. Each analysis runs on one thread. Server mode runs concurrent AnalysisWorker threads in parallel.

Network

The binary itself does not need network access at runtime.

Server mode listens on whichever endpoint you pass to --server. Default tested endpoints are tcp://127.0.0.1:5500 and ipc:///tmp/visao.sock. Put a reverse proxy in front of the server to add TLS.

User-level state

Per user, Visao keeps a single state file:

  • Linux/macOS: $XDG_CONFIG_HOME/visao/tccache.txt (default $HOME/.config/visao/tccache.txt).

  • Windows: %APPDATA%\visao\tccache.txt.

This is the toolchain probe cache. Deleting it triggers a re-probe on next run; safe to remove if a system change invalidates earlier results.