FeraeLabs / skunk

A person-in-the-middle proxy
MIT License
0 stars 0 forks source link

Control API #4

Open jgraef opened 5 months ago

jgraef commented 5 months ago

The control API's purpose is to allow a UI to connect to skunk-cli to set filters/rules and display the inspected flows. It should also prompt the user for flows that the user wants to modify.

I'd like to use axum with websockets for the server-side. And reqwest with reqwest-websocket for the client-side.

It would be nice if we can mux that websocket into multiple channels (mpsc and oneshot). This would make it easy to e.g. send a oneshot channel to the UI for it to send back a modified request/response. remoc is a crate that provides exactly this, but they did some questionable implementation choices, and I'd like to have a minimal/light-weight implementation of this.