MatrixAI / js-encryptedfs

Encrypted Filesystem for TypeScript/JavaScript Applications
https://polykey.com
Apache License 2.0
10 stars 3 forks source link

Refactoring EFS & Align coding standards with js-polykey #47

Closed CMCDragonkai closed 2 years ago

CMCDragonkai commented 2 years ago

Specification

Tasks

  1. Make sure all methods in EncryptedFS uses public or protected, no need to use private
  2. Helper methods should probably be moved into a separate utilities function. There are a lot of helper methods.
  3. Provide a promise interface under fs.promises. So you can do efs.promises.f where f is an awaitable version of the functions.

Addressed https://gitlab.com/MatrixAI/Engineering/Polykey/js-encryptedfs/-/merge_requests/46

CMCDragonkai commented 2 years ago

This is being addressed with the rest of the EFS refactoring. Given that I'm changing to a virtualised implementation this will be solved at the same time.

CMCDragonkai commented 2 years ago

Going to be trying out the virtualised way of implementing EFS using leveldown.

CMCDragonkai commented 2 years ago

We will have both @scottmmorris and myself assigned to this now. The solution is taking shape, but there is still quite alot of todos there. Details in the MR.

CMCDragonkai commented 2 years ago

This is now done. 3.0.0 has been released. Some left over things to do:

  1. Benchmarks & Load testing for EFS itself
  2. Tests for workermanager integrated into EFS
  3. Consider updating the blocksize to 16 KiB/24 KiB instead of right now 4 KiB? Before this is done, higher level EFS benchmarks should be applied. The default block size is set on the createEncryptedFS.

Issue talked about here: https://github.com/MatrixAI/js-encryptedfs/issues/50

CMCDragonkai commented 2 years ago

@scottmmorris you should get a github account and get your gitlab account email connected up.

I'm going to remove the js-encryptedfs repo on gitlab, and now all new development should be pushed straight to github.

@tegefaulkes make sure to update your remotes to point to github now.