Skip to content

NikOsint/IVFS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IVFS

Virtual File System written in C++ for Linux.

It uses a ZIP archive to store files, so you can read and write multiple files while only one is opened.

How it works

Poco::Zip is used for ZIP manipulations.

std::recursive_mutex is used for safe access from different threads.

How to build

Firstly, ensure that you do have the Poco package installed.

If not, install it according to the guide.

A simple way to do that is to use the apt package manager:

sudo apt install libpoco-dev

To build the console app for testing the IVFS functuanality, execute the following commands:

mkdir build && cd build
cmake ..
make

Now in the build directory you can find the ivfs.exe executable.

How to run

After building the console app, just execute the ivfs.exe.

If you are in the IVFS root directory, type:

./build/ivfs.exe [archive name]

The list of available commands is as follows:

Command Description
open [filename] Open file in readonly mode
create [filename] Create/Open file in writeonly mode
read [filename] Read from a previously opened file
write [filename] [data] Write to a previously opened file
close [filename] Close a previously opened file
q Quit

Typing data through console to write to a file is not very practical, so unit tests with real data are needed.

TIP: cover data in double quotes so that spaces do not act as delimiters.

TODOs

  • Implement unit tests
  • Implement connecting more than one ZIP archive
  • Implement in-memory filesystem to store temporary files
  • Rewrite to use another library so that there is no need to save and delete temporary files in native filesystem
  • Make different mutexes for different operations to improve performance
  • Implement safe and smart path resolving

About

Virtual File System written on C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published