The communication with rust-analyzer is done with standard input / output as far as I am aware. You could in theory create a wrapper script / program, which calls into rust-analyzer, and forwards between rust-analyzer input/output, and your editor.
The protocol uses json encoded messages, and is specified here: Redirecting….
Besides that, I really recommend trying to hack on the rust-analyzer itself, or use rust-analyzer as a library. Compared to rustc, the code is relatively straight-forward to work with, and @matklad has put some work into documenting its architecture.