ya-webadb icon indicating copy to clipboard operation
ya-webadb copied to clipboard

Support compression in sync push/pull

Open yume-chan opened this issue 1 year ago • 4 comments

Android 11 added support for Brotli compression in sync push/pull, Android 12 further added lz4 and zstd support. Using compression can result in up to 2x transfer speed.

Algorithms:

  • [ ] Brotli https://android-review.googlesource.com/c/platform/system/core/+/1250677
  • [ ] lz4 https://android-review.googlesource.com/c/platform/system/core/+/1276917
  • [ ] Zstd https://android-review.googlesource.com/c/platform/system/core/+/1319091

From https://android-review.googlesource.com/c/platform/system/core/+/1276917, pull speed in MB/s:

           none    brotli    lz4
USB 3.0     120       110    190
USB 2.0      38        75     63

No pure-JS implementations of all three algorithms were found on NPM. Need to create them ourselves.

Android 12 also added a dry-run flag in push/pull for testing. Shouldn't be useful in real situations: https://android-review.googlesource.com/c/platform/system/core/+/1276918

yume-chan avatar Feb 28 '23 07:02 yume-chan