Skip to content

0-harshit-0/QUO

Repository files navigation

QUO

A Decentralized CLI Browser Concept

USAGE

  • To operate it type the command id/index.
  • To search type the 6 command and press enter.
    • Now, search for the page that you are looking for and press "Enter".
    • To run the page, type -y {id} the id is the page id/index as shown in the CLI.
    • To close the search query command type -n.
  • To close the browser type 0.

Concepts

Browser

  • Running in the main thread
  • Shutdown channel is the global channel that shutsdown all the tab. The command channel is local channel that only has access to a particular tab

User Input

  • It is running in an individual Goroutine. (parent: main)

Tabs

  • New tab is like creating new Goroutine. (parent: user_input)
  • 1 Tab can only serve 1 webpage at a time.
  • The server that serves the webpage runs in a goroutine. (parent: tab)

Webpage

  • A webpage is simply a static HTML/CSS/JS directory.
  • All the webpages are read from the /webpages directory.
  • Two way to remove or add a new webpage to the browser:
    • You can paste the directory that contains the necessary files inside the /webpages.
    • Use the Search option and try searching for the particular webpage.

Search

  • User can search the local webpages and the webpages of the nodes

Synchronization

  • It is running in an individual Goroutine. (parent: main)
  • If another browser sends a message starting with "1" then that means they are checking if you are active and interested in sending the nodes copy you have
  • If the message starts with "n" then it is the list of nodes, ip:port,ip:port...
  • 0 has no use at the moment.
  • https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes | sysctl -w kern.ipc.maxsockbuf=8441037

Settings

  • Sync: if this is off, then the browser is completely disconnected from nodes.
  • SendNodes: if this is off, then the browser never shares its nodes.
  • ReceiveNodes: if this is off then the browser never saves any received nodes.

TO-DO

  • Clean variables like Webpages after user goes back to main user input.
  • anyone can send nodes, without limit. add some rate limit to receiving nodes and the receivers.
  • HTML Parser

About

A CLI Browser

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors