Hello!
This is an open-ended question to learn about your experience in writing an HTTP interface to a CLI app.
I have a CLI app at GitHub - iesahin/xvc: A robust (🐢) and fast (🐇) MLOps tool for managing data and pipelines in Rust (🦀) to manage binary data and ML pipelines on top of Git repositories. I want to write a server to operate on remote machines/VMs. The server will mainly receive an HTTP call and run the appropriate command, similar to Xvc's Python bindings.
There seems to be three different possible approaches and I'm not sure which is better: REST, GraphQL or gRPC. I used all of these in other languages but I don't know which Rust libraries are more mature and easier to develop.
My main use case is getting a set of commands and converting to XvcCLI struct that's used by clap. There may be some exceptions in the commands for security but the use case is converting to structs and calling the appropriate methods.
What do you recommend as an approach here? I want to write as minimum boilerplate as possible and don't want to duplicate these CLI structs elsewhere.
Thanks a lot for your answers.