Posts tagged #bazel

  1. Running Go tools in a browser

    Quick overview of how Go tools for the Mrav custom CPU are run inside a browser by leveraging WASM. The project is built with Bazel using Go rules.

  2. Embedded bare-metal C with Bazel and AVR

    Practical example of using Bazel to build an embedded C program, bare-metal. Concrete example with AVR ATmega328p.

  3. Simple Lua integration in Go

    Learn how to use Bazel to easily integrate (with a single command) mainline Lua in Go and potentially other languages (e.g. embedded C programs).

  4. Cross-compiling C and Go via cgo with Bazel

    Walkthrough for cross compiling a mixed C and Go binary for another platform using cgo and Bazel. Example is done with x86_64/Linux compiling for RISC-V/Linux.

  5. Making USB devices - end to end guide to your first gadget

    Introduction to implementing USB devices. Minimal overview of hardware and software with an example with STM32 microcontroller. Also contains an index to very detailed guides for more information.

  6. OCI containers with Bazel in one command

    Guide on building and running OCI containers using Bazel with one command. Bazel builds your software, packages the layers and builds the tarballs that can be imported by something like Docker to run your workloads.

  7. Go gRPC servers with Bazel in one command

    In-depth guide on building gRPC servers in Go programming language using Bazel. The end result is a single command that builds the proto definitions and links them into the server business logic. Includes the modern Bazel module mechanism for dependencies.

  8. Cross compiling C and C++ with Bazel

    Learn how to utilize Bazel's toolchains and platforms to cross-compile C and C++ for another architecture and OS. The example used is cross-compiling for a bare-metal RISC-V machine.

  9. Build all software in one command with Bazel

    An in-depth guide on how to use Bazel, including writing custom rules to automate any build/run software flow. The example combines fetching remote tools, running a multi-language build and building complex binaries.