Here is an update regarding the new and improved engine that is going to power Perplexity Explorer.
It is coming along nicely taking up time of course to perfect it where possible. There are still some things that I need to work out more before I find it ‘stable’ in any way. However there are multiple big changes that are being tested currently as part of the new engine. I’ll lay them out under here talking about these new ENGINE3 parts that are important to mention.
Compression is the first feature that is changed in ENGINE3. In ENGINE2 a implementation choice was made to lean more on 7-Zip. While of course this is great it did have some limitations. The libraries that I found were not cutting it as being stable. They worked fine most of the time but I found myself not using it because of the stability problem. Now of course this could be just my programming skills. In the end I made a decision for now to switch over to SharpZipLib. Biggest pro: it doesn’t require 7-Zip to be installed.
Plugins is the second thing that was added to the new engine. I have always wanted to implement this in ENGINE2 however many attempts were made and in the end I scrapped them all. In ENGINE3 I am attempting to implement this using a contract system. This contract system basically is what links the main program with the capabilities and properties of the plugin. For now I made plugins for hashing to test out the system and it works great.
Actions is now mostly threaded as well. I came across issues when the various actions like opening files made the application freeze because for example an antivirus wanted to scan the operation before allowing the file to open. It also freezed if a file was big and on a network drive and needed to be opened. This is for now fixed by just sending the command to Windows and that’s it. The command is send instantly and the application this way doesn’t freeze.
The DriveDetector also got an update that allows it to better detect differences in network drives and removeable devices. In Windows the command that something is being connected get triggered when both types of connections were made. This made it so that network drives were added to the removeable drives list.
Summed up the big additions for now:
- Plugin support
- Compression and decompression
- More accurate DriveDetector
- Threaded Actions
Work in progress and to-do:
- Shares support
- Directory size calculation
- History system rewrite
Of course there are many more changes as the project develops. Be sure to keep an eye out if you are interested.