siso

command module
v1.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 11, 2026 License: BSD-3-Clause Imports: 39 Imported by: 0

README

Siso

Siso is a build tool that aims to significantly speed up Chromium and Android build.

  • It is a drop-in replacement for Ninja, which means it can be easily used instead of Ninja without requiring a migration or change in developers' workflows.
  • It runs build actions on RBE natively.
  • It avoids stat, disk and network I/O as much as possible.
  • It reduces CPU usage and memory consumption by sharing a single process memory space.
  • It collects performance metrics for each action during a build and allows you to analyze them using cloud trace/cloud profiler.

Where did the name "Siso" come from?

Siso is named after shiso, a commonly-used herb in Japan. It's a reference to basil and the Bazel build system. Siso is an alternative romanization of shiso and more typeable than shiso (but still pronounced shiso). Considering how often we type the name of a build tool every day, we decided to optimize for that. ;)

Documents

Status

Siso is the primary build system for Chromium and the projects that import //build from Chromium.

As of Feb 2026, we start migrating to Siso for the Android build.

As of Aug 2025, Siso is moved to go.chromium.org/build/siso.

As of June 2025, Siso is used in all the projects that import Chromium's //build, and is used by default on non-Google environments.

As of Apr 2025, Siso's built-in remote execution client is used for Chromium and Chrome builders.

As of Nov 2024, Siso is used by default for the Chromium build on gLinux machines.

As of July 2024, Siso is used in all Chromium and Chrome builders, including official builds released to users.

As of the end of 2024 Q1, Siso is used in all CQ builders in Chromium.

As of April 2023, we are dogfooding Siso with invited Chrome developers. Please check go/chrome-build-dogfood for more information.

Contacts

FAQ

Please check go/siso-faq (internal).

References

Documentation

Overview

Siso is a Ninja-compatible build system optimized for remote execution.

Directories

Path Synopsis
auth
cred
Package cred provides gRPC / API credentials to authenticate to network services.
Package cred provides gRPC / API credentials to authenticate to network services.
Package blob pairs content with its digest and provides an in-memory content-addressable store.
Package blob pairs content with its digest and provides an in-memory content-addressable store.
Package build is the core package of the build tool.
Package build is the core package of the build tool.
buildconfig
Package buildconfig provides build config for `siso ninja`.
Package buildconfig provides build config for `siso ninja`.
cachestore
Package cachestore provides the interface CacheStore.
Package cachestore provides the interface CacheStore.
metadata
Package metadata provides a data structure to hold build metadata.
Package metadata provides a data structure to hold build metadata.
metadata/host
Package host provides os-specific host information functions.
Package host provides os-specific host information functions.
ninjabuild
Package ninjabuild provides build steps by ninja.
Package ninjabuild provides build steps by ninja.
ninjabuild/proto
Package proto provides protocol buffer message for siso deps log.
Package proto provides protocol buffer message for siso deps log.
Package execute runs commands.
Package execute runs commands.
localexec
Package localexec implements local command execution.
Package localexec implements local command execution.
proto
Package proto provides protocol buffer message for execute.
Package proto provides protocol buffer message for execute.
remoteexec
Package remoteexec executes cmd with remote exec API.
Package remoteexec executes cmd with remote exec API.
spawnhelper
Package spawnhelper provides spawnhelper framework.
Package spawnhelper provides spawnhelper framework.
Package hashfs provides a filesystem with digest hash.
Package hashfs provides a filesystem with digest hash.
osfs
Package osfs provides OS Filesystem access.
Package osfs provides OS Filesystem access.
proto
Package proto provides protocol buffer message for hashfs.
Package proto provides protocol buffer message for hashfs.
Package mmapfile provides a thin, OS-portable wrapper for memory-mapping a file.
Package mmapfile provides a thin, OS-portable wrapper for memory-mapping a file.
o11y
clog
Package clog provides context aware logging.
Package clog provides context aware logging.
iometrics
Package iometrics manages I/O metrics.
Package iometrics manages I/O metrics.
monitoring
Package monitoring provides OpenTelemetry support.
Package monitoring provides OpenTelemetry support.
pprof
Package pprof provides pprof supports.
Package pprof provides pprof supports.
pprof/proto
Package proto provides protocol buffer message for profiler.
Package proto provides protocol buffer message for profiler.
pprof/upload
Package upload implements a Cloud Profiler uploader for pprof profiles.
Package upload implements a Cloud Profiler uploader for pprof profiles.
resultstore
Package resultstore uploads to resultstore.
Package resultstore uploads to resultstore.
trace
Package trace manages execution traces.
Package trace manages execution traces.
Package path provides a normalized, forward-slash-separated path type.
Package path provides a normalized, forward-slash-separated path type.
Package reapi provides remote execution API.
Package reapi provides remote execution API.
bytestreamio
Package bytestreamio provides io interfaces on bytestream service.
Package bytestreamio provides io interfaces on bytestream service.
fetch
Package fetch provides the timeout policy for fetching blobs from the CAS.
Package fetch provides the timeout policy for fetching blobs from the CAS.
firstbyte
Package firstbyte exposes a gRPC stats handler that closes a caller-supplied Signal on the first stats.InPayload for any RPC tagged against a ctx from WithSignal.
Package firstbyte exposes a gRPC stats handler that closes a caller-supplied Signal on the first stats.InPayload for any RPC tagged against a ctx from WithSignal.
merkletree
Package merkletree operates on a merkle tree for remote execution API.
Package merkletree operates on a merkle tree for remote execution API.
merkletree/exporter
Package exporter is an exporter of directory tree from RBE-CAS.
Package exporter is an exporter of directory tree from RBE-CAS.
merkletree/importer
Package importer is an importer of directory tree into RBE-CAS.
Package importer is an importer of directory tree into RBE-CAS.
proto
Package proto provides protocol buffer message for reapi.
Package proto provides protocol buffer message for reapi.
reapitest
Package reapitest provides fake implementation of reapi for test.
Package reapitest provides fake implementation of reapi for test.
retry
Package retry provides retrying functionalities.
Package retry provides retrying functionalities.
Package resource provides an adaptive flush-admission gate.
Package resource provides an adaptive flush-admission gate.
Package scandeps provides forged C/C++ dependency scanner.
Package scandeps provides forged C/C++ dependency scanner.
Package signals makes it easier to catch interrupts.
Package signals makes it easier to catch interrupts.
subcmd
auth
Package auth provides auth related subcommands.
Package auth provides auth related subcommands.
fetch
Package fetch is fetch subcommand to fetch data from CAS.
Package fetch is fetch subcommand to fetch data from CAS.
fscmd
Package fscmd provides fs subcommand.
Package fscmd provides fs subcommand.
isolate
Package isolate uploads and computes tree digest for each targets.
Package isolate uploads and computes tree digest for each targets.
metricscmd
Package metricscmd provides metrics subcommand.
Package metricscmd provides metrics subcommand.
ninja
Package ninja implements the subcommand `ninja` which parses a `build.ninja` file and builds the requested targets.
Package ninja implements the subcommand `ninja` which parses a `build.ninja` file and builds the requested targets.
ninjafrontend
Package ninjafrontend is ninjafrontend subcommand to parse ninja frontend protos.
Package ninjafrontend is ninjafrontend subcommand to parse ninja frontend protos.
proxy
Package proxy is proxy subcommand to proxy RE-API service.
Package proxy is proxy subcommand to proxy RE-API service.
ps
Package ps is ps subcommand to list up active steps of ninja build.
Package ps is ps subcommand to list up active steps of ninja build.
query
Package query is ninja_query subcommand to query ninja build graph.
Package query is ninja_query subcommand to query ninja build graph.
recall
Package recall is recall subcommand to recall action by the digest and execute cmd with remote exec API.
Package recall is recall subcommand to recall action by the digest and execute cmd with remote exec API.
report
Package report is report subcommand to report siso logs.
Package report is report subcommand to report siso logs.
sandbox
Package sandbox is sandbox subcommand for debugging sandbox.
Package sandbox is sandbox subcommand for debugging sandbox.
scandeps
Package scandeps is scandeps subcommand for debugging scandeps.
Package scandeps is scandeps subcommand for debugging scandeps.
spawnhelper
Package spawnhelper implements the hidden "spawn-helper" subcommand that Siso re-execs itself as, to fork+exec local actions without forking its large heap.
Package spawnhelper implements the hidden "spawn-helper" subcommand that Siso re-execs itself as, to fork+exec local actions without forking its large heap.
version
Package version provides version subcommand.
Package version provides version subcommand.
webui
Package webui provides webui subcommand.
Package webui provides webui subcommand.
sync
lockfile
Package lockfile provides a file-based locking mechanism, allowing synchronisation across multiple processes.
Package lockfile provides a file-based locking mechanism, allowing synchronisation across multiple processes.
semaphore
Package semaphore provives semaphore.
Package semaphore provives semaphore.
third_party
material_web_components
Package mwc provides embed.FS containing Material Web Components and dependencies.
Package mwc provides embed.FS containing Material Web Components and dependencies.
toolsupport
abfsutil
Package abfsutil provides access to abfs.
Package abfsutil provides access to abfs.
cartfsutil
Package cartfsutil provides access to cartfs.
Package cartfsutil provides access to cartfs.
cartfsutil/proto
Package proto provides protocol buffer message for cartfs.
Package proto provides protocol buffer message for cartfs.
cartfsutil/proto/server
Package server provides protocol buffer message for cartfs server.
Package server provides protocol buffer message for cartfs server.
ciderutil/proto
Package proto provides protocol buffer message for ide analysis.
Package proto provides protocol buffer message for ide analysis.
cipdutil
Package cipdutil provides interface to cipd.
Package cipdutil provides interface to cipd.
cmdutil
Package cmdutil provides utilities for cmd.exe.
Package cmdutil provides utilities for cmd.exe.
cogutil
Package cogutil provides access to cog system.
Package cogutil provides access to cog system.
gccutil
Package gccutil provides utilities of gcc.
Package gccutil provides utilities of gcc.
makeutil
Package makeutil provides utilities for make.
Package makeutil provides utilities for make.
msvcutil
Package msvcutil provides utilities of msvc.
Package msvcutil provides utilities of msvc.
ninjautil
Package ninjautil provides utilitites for ninja.
Package ninjautil provides utilitites for ninja.
nsjailutil
Package nsjailutil provides utiliti4es of nsjail.
Package nsjailutil provides utiliti4es of nsjail.
nsjailutil/proto
Package proto provides protocol buffer message for nsjail.
Package proto provides protocol buffer message for nsjail.
reclientutil/proto
Package proto provides protocol buffer message for reclient metrics.
Package proto provides protocol buffer message for reclient metrics.
shutil
Package shutil provides utilities for unix shell.
Package shutil provides utilities for unix shell.
soongutil
Package soognutil provides interface to Android soong.
Package soognutil provides interface to Android soong.
soongutil/proto
Package proto provides protocol buffer message for soong integration.
Package proto provides protocol buffer message for soong integration.
straceutil
Package straceutil provides utilities for strace.
Package straceutil provides utilities for strace.
watchmanutil
Package watchmanutil provides utilities of watchman.
Package watchmanutil provides utilities of watchman.
Package ui provides user interface functionalities.
Package ui provides user interface functionalities.
Package version provides version information of the executable.
Package version provides version information of the executable.
Package webui implements siso webui.
Package webui implements siso webui.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL