real-debrid-downloader/resources/extractor-jvm
Sucukdeluxe 5b221d5bd5 Add persistent JVM daemon for extraction, fix caching with Set+Array
- JVM extractor now supports --daemon mode: starts once, processes
  multiple archives via stdin JSON protocol, eliminating ~5s JVM boot
  per archive
- TypeScript side: daemon manager starts JVM once, sends requests via
  stdin, falls back to spawning new process if daemon is busy
- Fix extraction progress caching: replaced Object.create(null) + in
  operator with Set<string> + linear Array scan — both Map.has() and
  the in operator mysteriously failed to find keys that were just set
- Daemon auto-shutdown on app quit via shutdownDaemon() in before-quit

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 05:59:13 +01:00
..
classes/com/sucukdeluxe/extractor Add persistent JVM daemon for extraction, fix caching with Set+Array 2026-03-05 05:59:13 +01:00
lib Replace extraction backend with SevenZipJBinding + Zip4j JVM sidecar 2026-03-03 02:08:42 +01:00
src/com/sucukdeluxe/extractor Add persistent JVM daemon for extraction, fix caching with Set+Array 2026-03-05 05:59:13 +01:00
README.md Replace extraction backend with SevenZipJBinding + Zip4j JVM sidecar 2026-03-03 02:08:42 +01:00
THIRD_PARTY_NOTICES.txt Replace extraction backend with SevenZipJBinding + Zip4j JVM sidecar 2026-03-03 02:08:42 +01:00

JVM extractor runtime

This directory contains the Java sidecar runtime used by src/main/extractor.ts.

Included backends

  • sevenzipjbinding for the primary extraction path (RAR/7z/ZIP and others)
  • zip4j for ZIP multipart handling (JD-style split ZIP behavior)

Layout

  • classes/ compiled JBindExtractorMain classes
  • lib/ runtime jars required by the sidecar
  • src/ Java source for the sidecar

Rebuild notes

The checked-in classes are Java 8 compatible and built from:

resources/extractor-jvm/src/com/sucukdeluxe/extractor/JBindExtractorMain.java

If you need to rebuild, compile against the jars in lib/ with a Java 8-compatible compiler.