You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Even simpler: since the traits in the hyper links above expect an AsyncRead and AsyncWrite handle, we can pass the ClientToServerChannel to the builder when creating the HTTP client/server. We don't need to even add a new underlying protocol. That way, HTTP will be over the Citadel Protocol, as desired, giving us HTTPX, similar to how HTTPS is just HTTP over TLS.
As of #169 , we have proven HTTP works over The Citadel Protocol.
Next, we will want to create an ExternelServiceCommunicator that allows communication to some TCP/TLS socket. This will allow people to reverse proxy from the public-facing application (0.0.0.0 or ::) to an internal 127.0.0.1 http/s service. This can also allow communication to a remote http server.
Once that is complete, we will need to integrate with an existing open-source browser (e.g., chromium).
When clients type in httpq://website.com, the custom source code will need a custom handler for httpq. The handler would need to map httpq to the default port, and using DNS, map the domain to an address. From there, the typical connection process can be called. We should also keep in mind that different login techniques may be used (e.g., passwordless and credentialed auth). By default, we should assume passwordless mode to make the httpq browsing experience identical to the normal browsing experience. However, if the client wishes to have a credentialed connection, this should be specifiable in some manner. Maybe, httpq://[email protected]. Entering this could trigger a password prompt.
tbraun96
changed the title
Project HTTPX:// :: Integrating The Citadel Protocol with the web browser
Project HTTPQ:// :: Integrating The Citadel Protocol with the web browser
May 1, 2023
Both client and server NetKernel implementations will need consumers of the forwarded data for rendering and processing.
[client-side] We can use TCP/TLS for establishing a connection w/handshake via: https://docs.rs/hyper/latest/hyper/client/conn/index.html.
[server-side] We can use TCP/TLS listeners for starting a server: https://docs.rs/hyper/latest/hyper/server/conn/index.html
TODO: more speccing required
The text was updated successfully, but these errors were encountered: