plabayo / rama

modular service framework to move and transform network packets
https://ramaproxy.org
Apache License 2.0
144 stars 13 forks source link

add opt-in support for chromium network stack (rama-chromium) #189

Open GlenDC opened 3 months ago

GlenDC commented 3 months ago

C++ Integration of the Chromium network stack to be used for client purposes. It would be an opt-in feature. Probably as a separate crate, e.g. rama-chromium, as it would be a pretty heavy dependency to pull in.

This should in theory make the network traffic identical on the client side, as long as you also configure it the same way.

Not on the immediate roadmap however given we still have plenty of other work to be done...

Funding via can be done to push this item higher on the roadmap.

Upvote & Fund

Fund with Polar

lxrst commented 3 months ago

As someone who's had to bind to Google projects built with Google-made build systems, this is going to be painful. You probably want to run the Chromium build in CI. The build.rs strategy would get very messy.

GlenDC commented 3 months ago

Yes it's going to be a lot of work initially and for maintenance as well, I do realise that. This is the reason that this is something that will only be picked up once there is funding for it or in near future when I found time for it to do it anyway.

The initial work will be split up in two phases:

Either way nothing that I want the project to tackle now on already. And will always be optional. By default we'll do it all in Rust.

lxrst commented 3 months ago

Oh ok, I was thinking of just using the Chromium source repo. Cutting out their build system would make it a lot easier.

I think they use NSS internally, so #125 might need to happen first.

GlenDC commented 3 months ago

No, NSS is Firefox. Chromium (and thus chrome) is Boringssl. Good thing is that Browser UA's ship their own SSL library, so not really platform dependent.

lxrst commented 3 months ago

Sorry, their OCSP implementation uses NSS. Not sure why