Is the requirement just that top-level interface is in C++ or that the entire pipeline is C++? I didn’t understand how you could build a bridge between Rust and C++ if you can’t use any non-C++ features. If it’s only that you need a C++ interface, the simplest thing to do might be to close and modify @aseyboldt’s interface design for PyMC and bridgestan.
Alternatively, Stan (GitHub repo stan-dev/stan) is 100% C++. You can use Stan directly from C++ with the services layer in stan-dev/stan, though this is not well documented as most of our users are not developers. Stan’s CmdStan command-line interface (repo stan-dev/cmdstan) is also 100% C++. But you can’t plug in generic C++ through CmdStan, only models coded in Stan. We haven’t implemented the real slick warmup from nutpie, though, so I’d recommend nutpie if that satisfies your requirements.