Build tags

View as Markdown

Conditional linkage generally refers to the inclusion or exclusion of certain pieces of code or libraries during the build process.

In Go, we use build tags to achieve the same.

Here’s the current list, grouped by category.

Supported backends

build tagcomment
awsInclude support for AWS S3
azureInclude support for Azure Blob Storage
gcpInclude support for Google Cloud Platform
htInclude support for a custom ht:// backend
ociInclude support for Oracle Cloud Infrastructure (OCI)

Debug & development

build tagcomment
debugInclude debug-related code and assertions
deadbeefDEADBEEF freed memsys buffers

StatsD

StatsD was deprecated in v3.28 (Spring 2025) and completely removed in v4.0 (September 2025).

Open telemetry

build tagcomment
oteltracingInclude support for OpenTelemetry tracing

Intra-cluster transport

There are two alternative ways to build transport package for intra-cluster networking:

  1. using Go net/http, or
  2. with a 3rd party github.com/valyala/fasthttp aka “fasthttp”

The second option is the current default.

build tagcomment
nethttpUse net/http for intra-cluster transport (the default is fasthttp)

fs.Walk from the standard library

build tagcomment
stdlibwalkInstead of godirwalk use filepath.WalkDir from the standard library

Dsort (distributed shuffle)

build tagcomment
dsortBuild aisnode with dsort runtime enabled and the respective APIs not stubbed; for details, see docs/dsort.md, api/dsort.go (Go), and python/aistore/sdk/dsort (Python)