-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
Vaibhav Sharma edited this page Nov 21, 2023
·
4 revisions
The architecture consists of 6 main things -
vupdatevparsevdownloadvconsolidvpackvlib
We'll discuss them one by one.
- This is the main application that we're primarily building. This automatically consists of
vparse,vdownloadandvconsolid. - A schematic is shown below which shows the architecture of the actual application -
-
vupdategenerates an executable, which is a standalone updater that can be used with any application. The invocation involves specifying aconfig.jsonwhich contains a keyserverspecifying the file server to download from. - In summary,
vupdateis like the main logic application.
- This is a module that is yet to be implemented.
- It will consist of functions that will perform tasks related to parsing (like parsing the URL, parsing the file path, and getting its various properties, etc.).
- This module is still
under reviewfor implementation.
- This is a module that handles the downloading of files and temporarily storing them.
- Primarily, the
curllibrary is used here.Filesystemis also used extensively here.
- This is also a module that handles the relocation of files downloaded.
- Usually this is called in succession to
vdownload. - Its functionality heavily revolves around the usage of
filesystem. Functions that involve tasks like moving files to certain directories, creating directories, etc. are performed in this module.
- This is a standalone application that is created for indexing the files on the server in a format known to the
vupdateapplication. - This application spits out a
filelist.jsonfile that is initially downloaded from the server for verification purposes.
-
vlibis a library to thevupdateapplication. It is available as a static library for other applications to link to, extending the functionality and easing integration with other applications. - It doesn't require a
config.jsonfor functioning, although support would be added in the future release to switch between these modes.
- The best way is to go through the implementation of the project files on your own. I'm pretty sure you can get through it with ease.
- If you still can't understand, you are always welcome to ping me through my website @ https://ghostvaibhav.codes. I will get back to you ASAP.