Got it, websocket, api and apub are all in separate workspaces now! It might not benefit compile times much, because the workspaces depend on each other linearly and dont allow for parallel compilation.
I used cargo-udeps to get rid of unused dependencies, but it doesnt seem to work on the main project. So we might have to try manually which deps can be removed.
For lemmy_api we should split up lib.rs, and probably move the stuff there into an internals folder.
Here are some measurements for compilation time, done with cargo clean && RUSTC_WRAPPER= cargo +nightly build -Ztimings. There is a lot of variance, but it looks like compilation time has not improved from this (as expected).
on main: 3m 45s, 3m 58s, 4m 02s
after moving websocket to workspace: 3m 29s, 4m 22s, 3m 55s
after moving api, apub to workspaces: 4m 09s, 3m 35s, 3m 43s