Create a service to proxy service running locally to the public URL. It Should be fully functional and interactive.
The resulting command might look like this:
reverprox 3000 api- Ability to configure the remote server URL
- Build on QUIC protocol
- Supports only HTTP proxy
- Ability to specify the subdomain to use for the public URL
- We will use QUIC
- The service will be written in rust
- We might use the daemon that runs locally
- We might add ability to configure daemin using CLI
- Ability for client to start a Bidirectional connection to the QUIC server
- Accept HTTP requests from the server
- Forward reqeusts to the local server
localhost:3000 - Wait for the response from the local server
- Send the response back to the QUIC server
- Server that accepts the QUIC connection from the Client
- Accepts HTTP Requests from the known public DNS
api.reverprox.com - When new Request comes in, it should be able to find the client that is connected to the server and forward the request to it
- Send the HTTP reqeust over QUIC
- Recieve the HTTP response from the client
- Send response back to the requester
- QUIC server that runs in the cloud
- QUIC client that runs locally
- Client configuration parsing
- Commands to initialize the connection and to configure client
- Client on initialization sends the init request to the server to establish the long-lasting connection
- Server needs to make regular Health checks to the client
- Server needs to support a list of clients (connections)
- Server needs to get the request from the client and send back the HTTP response to it
- Ability to generate TLS certificate
- Store Connections
- Connection health checks
- Interface for receiving requests
- Interface for sending requests
- Deconding.Encoding I/O
- the HTTP interface
- Send/Filtrate HTTP requests to the QUIC server
- SECURITY ...
- Send initialization request
- Long Lasting Bidirectional connections
- Parse the configuration
- Get the running local server details
- Ability to close the connection
- Filtrate the incomming messages
- CLI Interface
- Local Server health checks
- Ability to keep the connection in a suspended mode to then reopen it
- SECURITY ...
- Logger
- Error Handler
- Protocol
- Encoding/Decoding
- LRU Cache
- ERROR CODES ...