Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
GlenDC opened this issue May 16, 2024 · 5 comments
Open

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

GlenDC opened this issue May 16, 2024 · 5 comments
Labels

Comments

@GlenDC
Copy link
Member

GlenDC commented May 16, 2024

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 <polar.sh> can be done to push this item higher on the roadmap.

Upvote & Fund

  • We're using Polar.sh so you can upvote and help fund this issue.
  • We receive the funding once the issue is completed & confirmed by you.
  • Thank you in advance for helping prioritize & fund our backlog.
Fund with Polar
@polar-sh polar-sh bot added the Fund label May 17, 2024
@lxrst
Copy link

lxrst commented May 22, 2024

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
Copy link
Member Author

GlenDC commented May 22, 2024

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:

  • create a C++ Library with the networking code extracted out of the original chromium project, with a simple C-like wrapper around it, so the FFI will be easier. This should also include plenty of notes and references to easily keep that part of the code up to date with the upstream code
  • create the Rust wrapper around it so it can be used as an alternative web client backend

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
Copy link

lxrst commented May 23, 2024

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
Copy link
Member Author

GlenDC commented May 23, 2024

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
Copy link

lxrst commented May 23, 2024

Sorry, their OCSP implementation uses NSS.
Not sure why

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants