Bazel

Inventory of programmable hardware tooling

A link page of interesting libraries and utilities I found.

Feb 1, 2026

fshlib: shell library

fshlib is a simple shell library for logging. It provides a set of functions to log messages with different severity levels.

Jan 3, 2026

note to self: do not remove .bazelversion

The other day, I was pondering whether to keep setting particular bazel version in projects. I even removed some, to see what would become of it.

Dec 20, 2025

rules_shar: bazel rules for creating self-extracting archives (shars)

This repository provides Bazel rules for creating self-extracting archives (“shar"s) out of shell binaries.

Nov 22, 2025

Hermetic, Ephemeral, Reproducible Builds: Take Three (3)

The idea of this repository is to provide a hermetic, ephemeral and reproducible repository of prebuilt binaries, which can then be brought into bazel builds to remove the dependence on local binary installations.

Oct 29, 2025

Hermetic, Ephemeral, Reproducible Builds: Take Three (2)

This is another piece of news in my quest for hermetic, ephemeral, and reproducible builds (“HER”).

Oct 15, 2025

Bazel knowledge sources

This is a collection of links to interesting articles and knowledge sources about the Bazel build system that I found.

Oct 7, 2025

Hermetic, Ephemeral, Reproducible Builds: Take Three (1)

This is another piece of news in my quest for hermetic, ephemeral, and reproducible builds (“HER”).

Oct 6, 2025

Getting ready for the brave new Bazel Modules world

Update 2025-10-19: I made a searchable index of modules available from my registry at https://www.hdlfactory.com/bazel-registry.

Sep 29, 2025

Decentralized Downloads for Bazel: Introducing bazel_rules_bt

In the world of reproducible builds and efficient dependency management, Bazel stands out as a powerful tool. However, fetching large or uncommon dependencies can sometimes be a bottleneck. Enter bazel_rules_bt, a set of Bazel rules that uses the BitTorrent protocol to bring decentralized file downloading capabilities directly into your build system.

Aug 1, 2025

rules_nixpkgs use

This is a run-down of tips and tricks for the use of rules_nixpkgs, a rule set for bringing in nix packages for use in bazel.

Apr 11, 2025

From zero to RISC-V in hardware, in 6 minutes

Program your FPGA with a one-liner command. It’s a kind of magic.

Oct 5, 2024

nix requires ranlib

This is something seldom known, and a very sharp corner to cut yourself on. But you really want to know if you are using nix.

Sep 14, 2024

bazel rules for GHDL

I present to you https://github.com/filmil/bazel_rules_ghdl: a set of bazel rules for converting VHDL into Verilog.

Sep 3, 2024

bazel rules for a riscv64 bare metal rust compiler

This article assumes that you have bazel installed via the bazelisk method.

Aug 31, 2024

bazel installation via the bazelisk method

Here is how I install bazel. I use this installation method on all of my machines. I do not think it is practical to go about this any other way. It is implied in all of my writings about bazel.

Aug 24, 2024

bazel rules for a riscv64 bare metal GCC compiler

The repository https://github.com/filmil/bazel_rules_gcc_riscv64_baremetal contains bazel rules that can be used for a hermetic bare metal GCC cross-compiler for a 64-bit RISC-V machine, running in M-mode.

Aug 17, 2024

Hermetic, ephemeral, reproducible builds (‘her’)

This short note defines the notions of hermetic, ephemeral and reproducible software build, as used in my writing.

May 1, 2024

Nix+Bazel = ❤️

If you are in a hurry, fast forward to https://github.com/filmil/bazel_local_nix

Apr 20, 2024

bazel does not like FIFOs

Perhaps obvious in retrospect, but it is not possible for a bazel build artifact to generate a named pipe in the filesystem.

Feb 5, 2024

TIM-011 gets a unit test library

TIM-011 was an 8-bit teaching computer that was ostensibly developed by IMP in what is now Serbia.

Dec 24, 2023

bazel: excavating an unknown file from a foreign_cc rule

I discovered this trick recently, while trying (and mostly failing) to build a library.

Dec 14, 2023

TIM-011 gets a C runtime library

TIM-011 was an 8-bit teaching computer that was ostensibly developed by IMP in what is now Serbia.

Dec 13, 2023

TIM-011 computer - how we did things back then

I was a bit hard pressed to find all the proper work attribution. Please let me know if you have data to contribute.

Dec 3, 2023

bazel tips and tricks

Often needed little bits of bazel knowledge that I tend to forget.

Jul 30, 2023

Build a python web app in bazel

Here is an example python Flask app built with Bazel. See README.md for instructions.

Jul 25, 2023

How to use the make rule from rules_foreign_cc repository for bazel

The bazel build system has rules available to build C or C++ code from external repositories that use other more “conventional” build tools. By this I mean the usual suspects: GNU autotools, GNU make and cmake.

Jun 13, 2023