Migrating from RapidRTL to RouteRTL
This guide walks you through updating your project after the SDK rebrand.
The entire migration takes ~2 minutes. There are no behavioral changes — only the name has changed.
Step-by-Step
1. Drop the Old Submodule
git submodule deinit -f vendor/rapidrtl
git rm -f vendor/rapidrtl
rm -rf .git/modules/vendor/rapidrtl
The submodule pattern is no longer supported — routertl ships as a PyPI package only. (The old public github mirror was retired 2026-05-05; see D.86.)
2. Update Your Makefile
ROOT_DIR := $(shell pwd)
-include vendor/rapidrtl/tools/Common.mk
+# `Common.mk` lives inside the installed routertl package now.
+# Use `python -c "import routertl_core, os; print(os.path.dirname(routertl_core.__file__))"`
+# to locate it, or invoke `rr` directly — most projects no longer need
+# to include Common.mk at all.
3. Rename the Config Directory
mv .rapidrtl .routertl
4. Install the SDK
# Remove the old venv (if any)
rm -rf .venv
# Install via pip (the only supported path)
pip install routertl
# Repair project files
rr init --repair
5. Verify
# The new CLI command
routertl --help
# The shortcut still works
rr --help
# Run your tests
routertl sim --all
6. Update CI/CD (if applicable)
Search your pipeline configs for rapidrtl and replace with routertl:
# Quick find-and-replace
sed -i 's/rapidrtl/routertl/g' bitbucket-pipelines.yml
sed -i 's/RapidRTL/RouteRTL/g' bitbucket-pipelines.yml
7. Update Docker Volumes (if using Docker)
If you have existing Docker volumes from old builds:
# Remove old volumes (optional — only if you want to reclaim space)
docker volume ls | grep rapidrtl | awk '{print $2}' | xargs -r docker volume rm
# Rebuild with the new name
routertl docker install sim
What Changed
| Before | After |
|---|---|
vendor/rapidrtl/ | vendor/routertl/ |
rapidrtl CLI | routertl CLI |
.rapidrtl/ config dir | .routertl/ config dir |
rapidrtl-sim Docker image | routertl-sim Docker image |
from rapidrtl.sim import … | from routertl.sim import … |
What Did NOT Change
-
All Make targets work identically
-
project.ymlformat is unchanged -
rrshortcut still works -
Python public API — the classes and functions (
Tb,run_simulation,UartSource, etc.) are identical; only the top-level package name changed (rapidrtl→routertl). This is a breaking import change — update your test files:-from rapidrtl.sim import Tb, run_simulation +from routertl.sim import Tb, run_simulation -
RTL source code — no changes to your VHDL/Verilog files