Skip to content
SPECIFICTION
Get listed

clcache

github.com

Free plan Windows
Visit github.com
Spec score 7.4 #19 of 23 in Build Cache Software

What it is

clcache is a free, open-source Python script for Windows builds using Microsoft Visual C++ cl.exe. It intercepts compiler calls and reuses cached object files to avoid recompiling matching work, while unsupported invocations can be passed to the real compiler. Cache keys use preprocessed source, a normalized command line, and the compiler binary’s size and modification time. Command-line controls provide statistics, cleanup, clearing, and maximum-size settings; the default limit is 1073741824 bytes (1 GiB). Object files can be compressed at levels 1 through 9, though changing compression settings requires clearing the cache. Hard-link mode requires cache and build directories on the same drive. Documentation covers Visual Studio and MSBuild integration, recommends disabling TrackFileAccess, and describes optional hash caching and memcached storage. The documented path requires /c, excludes /link and /Zi, and supports /Z7. INCLUDE and LIBPATH changes may not be detected.

Spec sheet

Purpose
clcache is a Python script that avoids unnecessary recompilation by reusing cached object files for Microsoft Visual Studio.Read 8 Oct 2026 · github.com
Intended users
The project is intended for users building with Microsoft Visual Studio’s cl.exe compiler who want to reuse compiled object files.Read 8 Oct 2026 · github.com
License
The project source is subject to the BSD 3-Clause License unless a file states otherwise.Read 8 Oct 2026 · github.com
Build integrations
The README documents integration with Visual Studio and MSBuild and recommends disabling TrackFileAccess to avoid cache deletion and file tracking issues.Read 8 Oct 2026 · github.com
Cache controls
The command line options include cache statistics, cleanup, clearing, and setting the maximum cache size.Read 8 Oct 2026 · github.com
Cache key
The cache key uses preprocessed source, a normalized command line, and the compiler binary’s size and modification time.Read 8 Oct 2026 · github.com
Cache size limit
The default maximum cache size is 1073741824 bytes (1 GiB).Read 8 Oct 2026 · github.com
Compiler integration
It is designed to intercept calls to cl.exe and can relay unsupported invocations to the real compiler.Read 8 Oct 2026 · github.com
Compression
Object files can be compressed, with a configurable compression level from 1 to 9; changing compression settings requires clearing the cache.Read 8 Oct 2026 · github.com
Hard links
Hard-link mode can improve speed and disk usage, but requires the cache and build directories to be on the same drive.Read 8 Oct 2026 · github.com
Known limitation
The INCLUDE and LIBPATH environment variables are listed as unsupported, and changes to them may not be detected between compilations.Read 8 Oct 2026 · github.com
Shared cache options
A running clcachesrv.py process can cache file hashes, and a memcached backend can be used to save and restore cached data.Read 8 Oct 2026 · github.com
Supported compile invocations
The documented cache path requires /c, excludes /link, and excludes /Zi, while /Z7 is supported.Read 8 Oct 2026 · github.com

Plans and prices

clcache Free BSD 3-Clause licensed source code · default cache size 1 GiB Read 8 Oct 2026 · github.com

Every clcache plan and price →

Strong points and limits

Strong points

  • Free BSD 3-Clause licensed source
  • Reuses cached object files
  • Configurable cache size and compression
  • Visual Studio and MSBuild integration
  • Optional memcached backend

Limits

  • Windows platform only
  • INCLUDE and LIBPATH are unsupported
  • /link and /Zi invocations excluded
  • Hard links require one drive

Who it suits

clcache suits Windows developers building with Microsoft Visual Studio’s cl.exe through Visual Studio or MSBuild. It is also relevant to AppVeyor workflows and self-hosted build environments.

Verdict

clcache is a focused local cache for Microsoft Visual C++ compilation. Its fit depends on supported invocation flags and the limitations around environment-variable detection and storage layout.

Where Specifiction places it

Alternatives to clcacheAll alternatives →