Back to projects

2026Live

olivaw

shadcn/ui for robotics

  • Robotics
  • DevOps
olivaw init --name my-robot --target esp32
olivaw add sensors/mpu6050
olivaw add drivers/l298n
olivaw add slam/scan-matcher

Each command copies source code into your project. It does not add a dependency. You own the code, you can edit it, and you are never blocked by anyone else’s release cadence.

Why vendoring instead of crates

The hardest practical problem in the embedded Rust ecosystem is embedded-hal version churn. A driver crate pinned to embedded-hal 0.2 and a HAL on 1.0 do not compose, and no amount of care on your side fixes it — you wait for a maintainer, or you fork.

Vendoring sidesteps the whole category. The registry declares which crate dependencies a component needs; olivaw add appends them to your Cargo.toml while preserving your formatting, copies the source files into src/, and records versions plus a per-file sha256 in olivaw.toml so you can tell what you have changed since.

What that buys you

An MPU6050 driver that almost works is normally a dead end. Vendored, it is a file you open and fix in ten minutes. The trade is real — you no longer get upstream fixes for free — but on embedded projects that trade is usually the right way round.