Skip to content

2rueSid/reverprox-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Objective

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

Features

  • 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

Assumptions

  • 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

MVP

  • 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

Scope

  • 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

Server

  • 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 ...

Client

  • 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 ...

Common

  1. Logger
  2. Error Handler
  3. Protocol
  4. Encoding/Decoding
  5. LRU Cache
  6. ERROR CODES ...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages