Skip to content

clemens-k/learn-bazel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learn Bazel 🚀

Welcome to your comprehensive Bazel learning repository! This collection contains everything a software developer should know about Bazel - from its history and technical foundations to practical examples and best practices.

� Reproducible Development Environment

This repository includes a devcontainer configuration for consistent, reproducible development across different machines and teams. The container includes:

  • Bazel (latest stable version)
  • C/C++ toolchain (GCC, Clang)
  • Rust toolchain (rustc, cargo)
  • Python (for code generation)
  • VS Code extensions for Bazel development

📚 What You'll Learn

This repository focuses on systems programming languages and includes:

  • History & Context: Understanding where Bazel came from and why it exists
  • Technical Foundation: The tech stack, architecture, and dependencies
  • Core Concepts: Essential knowledge for working with Bazel
  • Practical Examples: Hands-on projects with C, C++, and Rust
  • Code Generation: Using Python/Jinja2 for build-time code generation
  • Resources: Curated links and references for deeper learning

🗺️ Learning Path

1. Foundation Knowledge

2. Development Setup

3. Hands-On Learning

4. Reference Materials

🚀 Quick Start

Option 1: Using Devcontainer (Recommended)

  1. Open in VS Code: Clone this repo and open in VS Code
  2. Reopen in Container: Use "Reopen in Container" when prompted
  3. Start Learning: Everything is pre-configured!

Option 2: Local Setup

  1. Install Bazel: Follow instructions at bazel.build
  2. Install Toolchains: C/C++ (GCC/Clang), Rust, Python
  3. Start with Basics: Navigate to examples/basic/

Learning Path

If you're completely new to Bazel:

  1. Start with the History of Bazel to understand the context
  2. Learn about the Tech Stack to understand what you're working with
  3. Dive into Core Concepts for the fundamentals
  4. Try the Basic Examples to get hands-on experience

📋 Prerequisites

  • Basic understanding of build systems and compilation
  • Familiarity with command-line tools
  • Experience with C, C++, or Rust programming
  • VS Code and Docker (for devcontainer setup)
  • Basic Git knowledge

🤝 Contributing

This is a personal learning repository, but feel free to:

  • Suggest improvements via issues
  • Share interesting Bazel patterns or examples
  • Point out errors or outdated information

📖 About This Repository

This repository serves as a comprehensive knowledge base for learning Bazel, structured to take you from zero knowledge to practical competency. Each section builds upon the previous one, with plenty of examples and references for further exploration.


Happy learning! 🎉

Last updated: September 2025

Disclaimer

The content of this repo is mostly AI generated (Claude Sonnet 4).

About

The basics of bazel shown with examples

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published