dokan-dotnet icon indicating copy to clipboard operation
dokan-dotnet copied to clipboard

Feature: Async

Open lostmsu opened this issue 11 months ago • 3 comments

As in the title - it would be nice to modernize the interface to be asynchronous, and perhaps also switch to Memory<byte> or Span<byte> for buffers.

A few other performance improvements like iterative file search as mentioned by @LTRData would be welcome too.

lostmsu avatar Mar 29 '24 23:03 lostmsu

I am working on that in a fork here: https://github.com/LTRData/dokan-dotnet/

The goal is to eventually merge it here as a pull request/branch in one way or another too. But there are lots of breaking changes and changes to implementation interfaces, so it requires some work to migrate existing implementations to it. The performance improvements are so big, I really think it is worth the breaking changes though. We could probably provide some kind of compatibility layer to make migration easier too.

LTRData avatar Mar 29 '24 23:03 LTRData

But there is really not anything that needs to be changed to support async as I see it. There should be no issues with calling async code from file system implementation routines. I have done that in lots of implementations without any issues.

LTRData avatar Mar 29 '24 23:03 LTRData

@LTRData I totally approve what you said https://github.com/dokan-dev/dokan-dotnet/issues/354#issuecomment-2027829167 Feel free to make the change when you feel comfortable. I agree that keeping the compatibility would be nice.

Liryna avatar Mar 30 '24 02:03 Liryna