Skip to main content
Pigweed's logo Pigweed
Overview expand_more
  • Pigweed overview
  • Mission & philosophies
  • Glossary
  • FAQs
Quickstart expand_more
  • Overview
  • First-time setup
  • Install Bazel
  • Bazel quickstart
  • Bazel integration
  • CMake integration
  • Static and runtime analysis
  • GitHub Actions
  • Zephyr quickstart
Tour expand_more
  • Overview
  • 0. Expectations and prerequisites
  • 1. Setup
  • 2. Explore build targets
  • 3. Build an app
  • 4. Explore C++ code intelligence
  • 5. Run host tests
  • 6. Static and runtime analysis
  • 7. Run the host app
  • 8. Flash your Pico
  • 9. Run on-device tests
  • 10. Communicate with your Pico over RPC
  • 11. Automate common workflows
  • 12. Communicate with your Pico over the Web Serial API
  • 13. Run factory workflows at your desk
  • 14. Use Bazel’s cloud features
  • 15. Run the air quality monitor app
  • 16. Handle crashes and view snapshots
  • 17. Wrapping up
  • Source code
Modules expand_more
  • Overview
  • Module Structure
  • Facades & backends
  • pw_alignment
  • pw_allocator
  • pw_analog
  • pw_android_toolchain
  • pw_arduino_build
  • pw_assert
  • pw_async
  • pw_async2
  • pw_atomic
  • pw_base64
  • pw_bloat
  • pw_blob_store
  • pw_bluetooth
  • pw_bluetooth_hci
  • pw_bluetooth_proxy
  • pw_bluetooth_profiles
  • pw_bluetooth_sapphire
  • pw_boot
  • pw_buf
  • pw_build
  • pw_build_android
  • pw_build_info
  • pw_build_mcuxpresso
  • pw_bytes
  • pw_channel
  • pw_change
  • pw_checksum
  • pw_chre
  • pw_chrono
  • pw_cli
  • pw_cli_analytics
  • pw_clock_tree
  • pw_compilation_testing
  • pw_config_loader
  • pw_console
  • pw_containers
  • pw_cpu_exception
  • pw_crypto
  • pw_digital_io
  • pw_display
  • pw_dma_mcuxpresso
  • pw_docgen
  • pw_doctor
  • pw_elf
  • pw_emu
  • pw_enum
  • pw_env_setup
  • pw_env_setup_zephyr
  • pw_file
  • pw_flatbuffers
  • pw_format
  • pw_fortifier
  • pw_function
  • pw_fuzzer
  • pw_ghish
  • pw_grpc
  • pw_hdlc
  • pw_hex_dump
  • pw_i2c
  • pw_ide
  • pw_interrupt
  • pw_intrusive_ptr
  • pw_json
  • pw_kernel
  • pw_kvs
  • pw_libc
  • pw_libcxx
  • pw_log
  • pw_malloc
  • pw_memory
  • pw_metric
  • pw_module
  • pw_multibuf
  • pw_multisink
  • pw_numeric
  • pw_package
  • pw_perf_test
  • pw_persistent_ram
  • pw_polyfill
  • pw_preprocessor
  • pw_presubmit
  • pw_protobuf
  • pw_protobuf_compiler
  • pw_random
  • pw_result
  • pw_ring_buffer
  • pw_router
  • pw_rpc
  • pw_rpc2
  • pw_rpc_transport
  • pw_rust
  • pw_sensor
  • pw_snapshot
  • pw_software_update
  • pw_span
  • pw_spi
  • pw_status
  • pw_stm32cube_build
  • pw_stream
  • pw_string
  • pw_symbolizer
  • pw_sync
  • pw_sys_io
  • pw_system
  • pw_target_runner
  • pw_thread
  • pw_time
  • pw_tls_client
  • pw_tokenizer
  • pw_toolchain
  • pw_trace
  • pw_transfer
  • pw_transport
  • pw_uart
  • pw_unit_test
  • Zephyr backend tests
  • pw_uuid
  • pw_varint
  • pw_watch
  • pw_web
  • pw_work_queue
Contributing expand_more
  • Contributing guide
  • Build systems reference
  • Code reviews (Gerrit)
  • Code review guidelines
  • Issue tracker
  • Report a vulnerability
  • SEEDs
  • Infra
  • Embedded C++ Guide
  • Style guides
  • Code of conduct
  • Docs contributors
  • Testing Guide
More expand_more
  • Build systems & toolchain
  • Targets
  • OS abstraction layers
  • Third-party modules
  • Community & news
  • Security
  • Reference
  1. Home
  2. /
  3. Quickstart
  4. /
  5. Bazel quickstart

Section Navigation

  • Build systems & toolchain
  • Overview
  • Bazel
    • Bazel
    • Install Bazel
    • Get Started With Pigweed And Bazel
    • Using Pigweed in an existing Bazel project
      • Add Pigweed as a dependency
      • Use Pigweed modules
    • Manage external dependencies in a Bazel project
    • Set up a MCU platform
    • Pigweed Bazel build compatibility patterns
  • GN / Ninja
    • GN / Ninja
    • Pigweed’s GN Python Build
  • CMake
    • Quickstart
    • Integration guide
    • API reference
  • Toolchain
  • Size optimizations

Site Navigation

  • Overview
    • Pigweed overview
    • Mission & philosophies
    • Glossary
    • FAQs
  • Quickstart
    • Overview
    • First-time setup
    • Install Bazel
    • Bazel quickstart
    • Bazel integration
    • CMake integration
    • Static and runtime analysis
    • GitHub Actions
    • Zephyr quickstart
  • Tour
    • Overview
    • 0. Expectations and prerequisites
    • 1. Setup
    • 2. Explore build targets
    • 3. Build an app
    • 4. Explore C++ code intelligence
    • 5. Run host tests
    • 6. Static and runtime analysis
    • 7. Run the host app
    • 8. Flash your Pico
    • 9. Run on-device tests
    • 10. Communicate with your Pico over RPC
    • 11. Automate common workflows
    • 12. Communicate with your Pico over the Web Serial API
    • 13. Run factory workflows at your desk
    • 14. Use Bazel’s cloud features
    • 15. Run the air quality monitor app
    • 16. Handle crashes and view snapshots
    • 17. Wrapping up
    • Source code
  • Modules
    • Overview
    • Module Structure
    • Facades & backends
    • pw_alignment
      • C/C++ API reference
      • Source code
      • Issues
    • pw_allocator
      • Guides
      • Design & roadmap
      • Backends
        • Zephyr
          • Source code
          • Issues
      • Code size analysis
      • pw_allocator threat model
      • C/C++ API reference
      • Source code
      • Issues
    • pw_analog
      • C/C++ API reference
      • Source code
      • Issues
    • pw_android_toolchain
      • Source code
      • Issues
    • pw_arduino_build
      • Source code
      • Issues
    • pw_assert
      • Backends
        • Basic
          • Source code
          • Issues
        • Pigweed logging
          • Source code
          • Issues
        • Fuchsia
          • Source code
          • Issues
        • Tokenized
          • Source code
          • Issues
        • Trap
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • Rust API reference
      • Source code
      • Issues
    • pw_async
      • Backends
        • Basic
          • C/C++ API reference
          • Source code
          • Issues
        • Fuchsia
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_async2
      • Why pw_async2?
      • Quickstart
      • Informed poll
      • Codelab
        • 1. Run a task
        • 2. Call an async function
        • 3. Create and wake a Future
        • 4. Use a state machine
        • 5. Communicate between tasks
      • Guides
      • Dispatcher
      • Code size analysis
      • Coroutines
      • Futures
      • Channels
      • Tasks
      • C/C++ API reference
      • Source code
      • Issues
    • pw_atomic
      • Source code
      • Issues
    • pw_base64
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_bloat
      • pw_bloat threat model
      • C/C++ API reference
      • Source code
      • Issues
    • pw_blob_store
      • Source code
      • Issues
    • pw_bluetooth
      • C/C++ API reference
      • Source code
      • Issues
    • pw_bluetooth_hci
      • Source code
      • Issues
    • pw_bluetooth_proxy
      • Crash recovery
      • pw_bluetooth_proxy threat model
      • C/C++ API reference
      • Source code
      • Issues
    • pw_bluetooth_profiles
      • Source code
      • Issues
    • pw_bluetooth_sapphire
      • Fuchsia development
      • Size report
      • C/C++ API reference
      • Source code
      • Issues
    • pw_boot
      • Backends
        • Cortex-M
          • Source code
          • Issues
      • pw_boot threat model
      • Source code
      • Issues
    • pw_buf
      • Source code
      • Issues
    • pw_build
      • GN / Ninja
        • Python GN Templates
      • Bazel
        • Rules
        • Compatibility constraints
        • Helper targets, macros, and templates
      • Project Builder
      • Python API Reference
      • Linker Scripts
      • Workflows Launcher
        • Workflows build drivers
      • pw_build threat model
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_build_android
      • Source code
      • Issues
    • pw_build_info
      • Source code
      • Issues
    • pw_build_mcuxpresso
      • Source code
      • Issues
    • pw_bytes
      • Code size analysis
      • Design & roadmap
      • Quickstart & guides
      • pw_bytes Python package
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_channel
      • Quickstart & guides
      • Design
      • C/C++ API reference
      • Source code
      • Issues
    • pw_change
      • Source code
      • Issues
    • pw_checksum
      • Source code
      • Issues
    • pw_chre
      • C/C++ API reference
      • Source code
      • Issues
    • pw_chrono
      • Backends
        • embOS
          • Source code
          • Issues
        • FreeRTOS
          • Source code
          • Issues
        • RP2040
          • Source code
          • Issues
        • STL
          • Source code
          • Issues
        • ThreadX
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_cli
      • API Reference
      • pw_cli threat model
      • Source code
      • Issues
    • pw_cli_analytics
      • Source code
      • Issues
    • pw_clock_tree
      • Examples
      • Implementations
        • MCUXpresso
          • C/C++ API reference
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_compilation_testing
      • Source code
      • Issues
    • pw_config_loader
      • API Reference
      • Source code
      • Issues
    • pw_console
      • User Guide
      • Embedding Guide
      • Plugin Guide
      • Manual Test Procedure
      • Built-in CLI Tools
      • Internal Design
      • pw_console threat model
      • Source code
      • Issues
    • pw_containers
      • Lists
      • Maps
      • Queues
      • Sets
      • Vectors
      • Utilities
      • Using items with multiple containers
      • C/C++ API reference
      • Source code
      • Issues
    • pw_cpu_exception
      • Backends
        • Cortex-M
          • Source code
          • Issues
        • RISCV
          • Source code
          • Issues
      • Source code
      • Issues
    • pw_crypto
      • pw_crypto threat model
      • C/C++ API reference
      • Source code
      • Issues
    • pw_digital_io
      • Backends
        • Linux
          • Source code
          • Issues
        • MCUXpresso
          • C/C++ API reference
          • Source code
          • Issues
        • RP2040
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_display
      • API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_dma_mcuxpresso
      • Source code
      • Issues
    • pw_docgen
      • Source code
      • Issues
    • pw_doctor
      • Source code
      • Issues
    • pw_elf
      • pw_elf Python package
      • C/C++ API reference
      • Source code
      • Issues
    • pw_emu
      • Get started & guides
      • CLI reference
      • API reference
      • Configuration
      • Design
      • SEED-0108
      • Source code
      • Issues
    • pw_enum
      • Source code
      • Issues
    • pw_env_setup
      • Bazel CIPD Module Extension
      • Source code
      • Issues
    • pw_env_setup_zephyr
      • Source code
      • Issues
    • pw_file
      • Source code
      • Issues
    • pw_flatbuffers
      • Source code
      • Issues
    • pw_format
      • Rust API reference
      • Source code
      • Issues
    • pw_fortifier
      • User guide for defect scanners
      • User guide for freshness scanners
      • Other utilities
      • Implementation guide for defect scanners
      • Implementation guide for freshness scanners
      • Design
      • API reference
      • Source code
      • Issues
    • pw_function
      • C/C++ API reference
      • Source code
      • Issues
    • pw_fuzzer
      • Concepts
      • Adding Fuzzers Using FuzzTest
      • Adding Fuzzers Using LibFuzzer
      • Using OSS-Fuzz
      • Source code
      • Issues
    • pw_ghish
      • CLI User Guide
      • Issue Tracking (gh issue)
      • AI Workflows
      • GitHub CLI Comparison
      • Flag compatibility policy
      • Status & roadmap
      • Project Adoption Guide
      • Agent Evaluation Runbook
      • Source code
      • Issues
    • pw_grpc
      • Source code
      • Issues
    • pw_hdlc
      • Get started & guides
      • API reference
      • Design & roadmap
      • Code size analysis
      • RPC over HDLC example
      • Router
      • C/C++ API reference
      • Source code
      • Issues
    • pw_hex_dump
      • C/C++ API reference
      • Source code
      • Issues
    • pw_i2c
      • Quickstart and guides
      • Implementations
        • Linux
          • C/C++ API reference
          • Source code
          • Issues
        • MCUXpresso
          • Source code
          • Issues
        • Pico SDK
          • Source code
          • Issues
        • Zephyr RTOS
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_ide
      • Bazel
        • Getting Started
        • Code intelligence
        • Rust code intelligence
        • Extension enforcement
        • Commands Reference
        • Troubleshooting
      • Bootstrap
        • Legacy support via CLI
      • Contributing
        • Development
        • Manual Test Procedure
        • Design
          • C/C++ code intelligence
          • Projects
      • Source code
      • Issues
    • pw_interrupt
      • Backends
        • Cortex-M
          • Source code
          • Issues
        • FreeRTOS
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
        • Fake (test-only)
      • C/C++ API reference
      • Source code
      • Issues
    • pw_intrusive_ptr
      • Source code
      • Issues
    • pw_json
      • C/C++ API reference
      • Source code
      • Issues
    • pw_kernel
      • Quickstart
      • Tour
      • Design
      • Guides
      • Upstream
      • Source code
      • Issues
    • pw_kvs
      • Guides
      • On-disk format and design
      • Code size analysis
      • pw_kvs threat model
      • C/C++ API reference
      • Source code
      • Issues
    • pw_libc
      • Source code
      • Issues
    • pw_libcxx
      • Source code
      • Issues
    • pw_log
      • The pw_log protobuf
      • Tokenized log arguments
      • API reference
      • Backends
        • Android
          • Source code
          • Issues
        • Basic
          • Source code
          • Issues
        • Fuchsia
          • Source code
          • Issues
        • Null
          • Source code
          • Issues
        • RPC
        • String
          • Source code
          • Issues
        • Tokenized
          • C/C++ API reference
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_malloc
      • Backends
        • Freelist
          • Source code
          • Issues
        • FreeRTOS
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_memory
      • Source code
      • Issues
    • pw_metric
      • Source code
      • Issues
    • pw_module
      • Source code
      • Issues
    • pw_multibuf
      • Usage examples
      • Concepts
      • Design
      • Code size analysis
      • C/C++ API reference
      • Source code
      • Issues
    • pw_multisink
      • Source code
      • Issues
    • pw_numeric
      • C/C++ API reference
      • Source code
      • Issues
    • pw_package
      • Source code
      • Issues
    • pw_perf_test
      • C/C++ API reference
      • Source code
      • Issues
    • pw_persistent_ram
      • C/C++ API reference
      • Source code
      • Issues
    • pw_polyfill
      • C/C++ API reference
      • Source code
      • Issues
    • pw_preprocessor
      • C/C++ API reference
      • Source code
      • Issues
    • pw_presubmit
      • Code formatting
      • pigweed.json configuration options
      • Source code
      • Issues
    • pw_protobuf
      • Extended size report
      • C/C++ API reference
      • Source code
      • Issues
    • pw_protobuf_compiler
      • Source code
      • Issues
    • pw_random
      • Backends
        • Fuchsia
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_result
      • C/C++ API reference
      • Source code
      • Issues
    • pw_ring_buffer
      • Source code
      • Issues
    • pw_router
      • Source code
      • Issues
    • pw_rpc
      • Integration & setup
      • Creating services
      • C++ client & server
      • C++ with Nanopb
      • C++ with pw_protobuf
      • C++ with raw RPC
      • C/C++ API reference
      • Python client
      • TypeScript client
      • Java client
      • Benchmarking
      • Wire protocol
      • Design
      • Serial & HDLC example
      • Source code
      • Issues
    • pw_rpc2
      • Source code
      • Issues
    • pw_rpc_transport
      • Source code
      • Issues
    • pw_rust
      • Source code
      • Issues
    • pw_sensor
      • Python package
      • Source code
      • Issues
    • pw_snapshot
      • Setting up a Snapshot Pipeline
      • Module Usage
      • Snapshot Proto Format
      • Design Discussion
      • Source code
      • Issues
    • pw_software_update
      • Get started
      • Design
      • Guide
      • CLI reference
      • pw_software_update threat model
      • Source code
      • Issues
    • pw_span
      • C/C++ API reference
      • Source code
      • Issues
    • pw_spi
      • Backends
        • Linux
          • Source code
          • Issues
        • MCUXpresso
          • Source code
          • Issues
        • RP2040
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_status
      • Get started & guides
      • Reference
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_stm32cube_build
      • Source code
      • Issues
    • pw_stream
      • Backends
        • UART (Linux)
          • C/C++ API reference
          • Source code
          • Issues
        • UART (MCUXpresso)
          • Source code
          • Issues
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
      • Python
    • pw_string
      • Get Started & Guides
      • Design & Roadmap
      • Code Size Analysis
      • C/C++ API reference
      • Source code
      • Issues
    • pw_symbolizer
      • Source code
      • Issues
    • pw_sync
      • Backends
        • Bare Metal
          • Source code
          • Issues
        • embOS
          • Source code
          • Issues
        • FreeRTOS
          • Source code
          • Issues
        • STL
          • Source code
          • Issues
        • ThreadX
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_sys_io
      • Backends
        • Ambiq Suite SDK
          • Source code
          • Issues
        • Arduino
          • Source code
          • Issues
        • LM3S6965EVB
          • Source code
          • Issues
        • STM32F429
          • Source code
          • Issues
        • Emcraft SF2
          • Source code
          • Issues
        • MCUXpresso
          • Source code
          • Issues
        • RP2040
          • Source code
          • Issues
        • Standard I/O
          • Source code
          • Issues
        • STM32Cube
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_system
      • Console CLI reference
      • Python Console APIs
      • C/C++ API reference
      • Source code
      • Issues
    • pw_target_runner
      • Go
      • Source code
      • Issues
    • pw_thread
      • Backends
        • embOS
          • Source code
          • Issues
        • FreeRTOS
          • Source code
          • Issues
        • STL
          • Source code
          • Issues
        • ThreadX
          • Source code
          • Issues
        • Zephyr
          • Source code
          • Issues
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_time
      • Rust API reference
      • Source code
      • Issues
    • pw_tls_client
      • Backends
        • BoringSSL
          • Source code
          • Issues
        • MbedTLS
          • Source code
          • Issues
      • Source code
      • Issues
    • pw_tokenizer
      • Get started
      • Tokenization
      • Token databases
      • Detokenization
      • API reference
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_toolchain
      • Bazel build system integrations
      • GN build system integrations
      • pw_toolchain threat model
      • C/C++ API reference
      • Source code
      • Issues
    • pw_trace
      • Backends
        • Tokenized
          • C/C++ API reference
          • Source code
          • Issues
      • Source code
      • Issues
    • pw_transfer
      • C/C++ API reference
      • Source code
      • Issues
    • pw_transport
      • Source code
      • Issues
    • pw_uart
      • Backends
        • MCUXpresso
          • Source code
          • Issues
      • C/C++ API reference
      • Source code
      • Issues
    • pw_unit_test
    • Zephyr backend tests
      • Source code
      • Issues
    • pw_uuid
      • C/C++ API reference
      • Source code
      • Issues
    • pw_varint
      • Rust API reference
      • C/C++ API reference
      • Source code
      • Issues
    • pw_watch
      • How-to guide
      • CLI reference
      • Source code
      • Issues
    • pw_web
      • Manual Test Procedure
      • Log viewer
      • Python shell
      • Source code
      • Issues
    • pw_work_queue
      • C/C++ API reference
      • Source code
      • Issues
  • Contributing
    • Contributing guide
    • Build systems reference
    • Code reviews (Gerrit)
    • Code review guidelines
    • Issue tracker
    • Report a vulnerability
    • SEEDs
      • 0001: The SEED Process
      • 0002: SEED Template
      • 0101: pigweed.json
      • 0102: Consistent Module Documentation
      • 0103: pw_protobuf: Past, present, and future
      • 0104: Display Support
      • 0105: Nested Tokens and Tokenized Log Arguments
      • 0106: Project template
      • 0107: Pigweed Communications
      • 0108: Emulators Frontend
      • 0109: Communication Buffers
      • 0110: Memory Allocation Interfaces
      • 0111: Make Bazel Pigweed’s Primary Build System
      • 0112: Async Poll Model
      • 0113: Add modular Bazel C/C++ toolchain API
      • 0114: Channels
      • 0115: Sensors
      • 0116: Sockets
      • 0117: I3C
      • 0118: Sensor Read API
      • 0119: Sensors
      • 0120: Sensor Configuration
      • 0121: Pigweed project server
      • 0122: Organize Pigweed code samples
      • 0123: Sprout Bazel C++ toolchain API into a separate repository
      • 0124: Interfaces for Retrieving Size Information from Multisink
      • 0125: Statistics Database
      • 0126: Key-Value Store Interfaces
      • 0127: Sensor Reading
      • 0128: Abstracting Thread Creation
      • 0129: Support PW_ASSERT with non-argument message
      • 0130: Update Sphinx theme
      • 0132: pw_usb
      • 0133: pw_wakelock
      • 0134: Unify pw_build, pw_presubmit, and the pw tool with Workflows
    • Infra
      • Managing the Bazel lockfile
      • CI/CQ Intro
      • Rollers
      • Glossary
    • Embedded C++ Guide
    • Style guides
      • Bazel
      • C++
      • Commit message
      • CLI
      • Protobuf
      • Python
      • reStructuredText
      • Doxygen
      • Writing
    • Code of conduct
    • Docs contributors
      • Build system
      • Doxygen
      • Module docs contributor guidelines
      • Code examples
      • Website updates
      • Changelog guide for contributors
    • Testing Guide
      • C++ Type Equivalence Classes
  • Build systems & toolchain
    • Build systems & toolchain
    • Overview
    • Bazel
      • Bazel
      • Install Bazel
      • Get Started With Pigweed And Bazel
      • Using Pigweed in an existing Bazel project
        • Add Pigweed as a dependency
        • Use Pigweed modules
      • Manage external dependencies in a Bazel project
      • Set up a MCU platform
      • Pigweed Bazel build compatibility patterns
    • GN / Ninja
      • GN / Ninja
      • Pigweed’s GN Python Build
    • CMake
      • Quickstart
      • Integration guide
      • API reference
    • Toolchain
    • Size optimizations
  • Targets
    • Targets
    • Android
    • Ambiq Apollo4
    • Ambiq Apollo4 with pw_system
    • Arduino
    • docs
    • Emcraft SmartFusion2
    • Fuchsia
    • host
    • Host Device Simulator
    • lm3s6965evb-qemu
    • mimxrt595-evk
    • mimxrt595-evk-freertos
    • pw_rp2350
    • Raspberry Pi RP2040 and RP2350
      • Upstream Pigweed
    • stm32f429i-disc1
    • stm32f429i-disc1: STM32Cube
  • OS abstraction layers
    • OS abstraction layers
    • Zephyr
      • Setup
      • Advantages & differences
      • Zephyr backend modules
        • Allocator
        • Assert
        • Chrono
        • Env setup
        • Interrupt
        • Log
        • Sync
        • SPI
        • Sys IO
        • Thread
    • FreeRTOS
      • Setup
      • Advantages & differences
      • FreeRTOS backend modules
        • Chrono
        • Interrupt
        • Malloc
        • Sync
        • Thread
    • ThreadX
      • Setup
      • Advantages & differences
      • ThreadX backend modules
        • Chrono
        • Sync
        • Thread
    • embOS
      • Setup
      • Advantages & differences
      • embOS backend modules
        • Chrono
        • Sync
        • Thread
    • STL (Linux, MacOS, Windows, Fuchsia)
      • STL backend modules
        • Chrono
        • Sync
        • Thread
    • Bare metal
      • Bare metal backend modules
        • Sync
  • Third-party modules
    • Abseil C++
    • BoringSSL
    • crates.io dependencies
    • Docker
    • Emboss
    • Fuchsia libraries
    • FuzzTest
    • GoogleTest
    • LLVM compiler-rt
    • LLVM libc
    • LLVM libcxx
    • Nanopb
    • Perfetto
    • TinyUSB
  • Community & news
    • Community & news
    • Issue tracker
    • Mailing list
    • Chat room (Discord)
    • Code of conduct
    • Blog
      • Pigweed Blog
      • #1: Kudzu
      • #2: Feature flags in Bazel
      • #3: Pigweed SDK launch
      • #4: Fixed Point Arithmetic as a Replacement for Soft Floats
      • #5: C++20 coroutines without heap allocation
      • #6: Shaping a better future for Bazel C/C++ toolchains
      • #7: BazelCon 2024
      • #8: Migrating pigweed.dev to Bazel
      • #9: Satisfying Bazel's relative paths requirement in C++ toolchains
      • RSS feed
    • Showcase projects
      • Showcase projects
      • Kudzu
    • What's new
      • Index
      • August 2026
      • July 2026
      • June 2026
      • May 2026
      • April 2026
      • March 2026
  • Security
    • Report a vulnerability
    • Agentic threat model
    • Handling false positives
    • 2026 Security Bulletins
      • July 2026
      • August 2026
  • Reference

Get Started With Pigweed And Bazel#

We recently updated our Bazel quickstart repository and are in the process of updating this tutorial. You can browse the new repository here (the README has instructions on how to get started): https://cs.opensource.google/pigweed/quickstart/bazel

In the meantime, you can also check out Sense: An interactive tour though Pigweed for a guided, interactive tour of Pigweed’s core features.

previous

Install Bazel

next

Using Pigweed in an existing Bazel project

© Copyright 2026 The Pigweed Authors.

Built with the PyData Sphinx Theme 0.18.0.