Skip to content

Optimize/arch weak cpu librqbit proxy buffer - #38

Closed
CybeRxNinja wants to merge 9 commits into
stremio-native:masterfrom
CybeRxNinja:optimize/arch-weak-cpu-librqbit-proxy-buffer
Closed

CybeRxNinja wants to merge 9 commits into
stremio-native:masterfrom
CybeRxNinja:optimize/arch-weak-cpu-librqbit-proxy-buffer

Conversation

@CybeRxNinja

@CybeRxNinja CybeRxNinja commented Aug 28, 2026

Copy link
Copy Markdown

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

CybeRxNinja and others added 9 commits August 27, 2026 22:38
- ci.yml: fmt, clippy, test, security audit on PRs/pushes to master
- build-release.yml: Linux (deb+AppImage), Windows (exe+MSI), Arch (.pkg.tar.zst)
- Add rustfmt.toml for consistent formatting
- Remove old monolithic release.yml
- Collapse nested if in server/src/main.rs:306
- Apply cargo fmt across 56 files
Pre-existing dependency vulnerabilities should warn without failing CI.
Fixing them requires dependency updates beyond this PR's scope.
- Add GPG signing step in build-arch job
- Import private key from GitHub secrets
- Sign package with makepkg --sign
- Upload .sig file alongside .pkg.tar.zst
- User imports public key once with: pacman-key --add release-public.asc
…e debrid streams)

- Add 16 MiB windowed read-ahead buffer to the /proxy route so debrid/HLS
  webstreams (the kind AIOStreams-Lite / M-T-E emit as url streams) no longer
  stall when the upstream debrid link is slower than local playback. Buffer
  size is user-tunable via a new proxy_read_ahead_mib server setting (0=off).
- Expose proxy_read_ahead_mib in the settings GUI (text field under 'Proxy
  streams') and wire it through the API get/apply paths.
- Switch release profile from opt-level=z to opt-level=3: favors decode/
  streaming throughput on the weak i5-5200U over binary size (built once,
  run many times). lto + single codegen-unit retained.
- Verified: cargo check -p server, -p settings-gui, enginefs all pass with
  libtorrent 2.1.1 on Arch.
The 'Build and sign package' Arch step failed with exit 2 because
/home/builder/.gnupg was created as root but gpg ran as the 'builder'
user, so it could not write its keyring (Permission denied) and the
key import failed -> makepkg --sign had no key.

- chown the .gnupg homedir to builder before importing.
- Only sign when the GPG_PRIVATE_KEY secret is actually present;
  otherwise build an unsigned package so fork CI stays green without
  repo secrets configured.
…actively)

makepkg --sign invokes gpg without --pinentry-mode loopback, so a
passphrase-protected key cannot be signed in a headless CI runner
(verified locally: signing fails with 'signing failed: File exists'
when no TTY). The package is installed locally via pacman -U and does
not require a signature, so drop signing entirely. Also removed the
stale *.pkg.tar.zst.sig upload glob (no signature is produced).

Verified: 'makepkg -f --noconfirm' on this Arch host builds
stream-server-0.1.0-1-x86_64.pkg.tar.zst from the release binaries.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant