I actually spent a whole summer trying to do this in Crystal and I was very nearly successful, however a few low level limitations got in my way at the end of the day. In Crystal it is actually possible to do this kind of REPL if you have a perfect ability to deep marshal/copy any object, and I almost, almost got that working here: https://github.com/sam0x17/marshal
In practice, I personally just use REPLs mostly for quick testing out of a small expression or something...and honestly, I usually just use the Rust playground (https://play.rust-lang.org/) for this. Small examples are compiled fast enough in the playground that it's kind of a REPL-like experience for testing stuff out semi-interactively...but it's not the same as connecting to a running application and running new code inside of that application. That's something that seems very difficult to add to Rust, a compiled, statically-linked language with limited support for hot reloading...
I've written some on it [0] and there was a recent reddit thread discussing it [1]
[0] https://epage.github.io/blog/2021/09/learning-rust/
[1] https://www.reddit.com/r/rust/comments/rddokp/media_most_up_...
You can follow the progress of that here: https://github.com/tokio-rs/tracing/pull/1608
I believe it's currently just waiting for a crates.io release of `valuable`!
Curious to hear, in general, how it's been used.
Right now, we wanted to get the first release out and start getting people using it and collect feedback to help prioritize future development.
I've also recently started accepting donations on my personal GitHub Sponsors page (https://github.com/sponsors/hawkw) if you're interested in supporting my open-source work in particular.