vectordotdev / vectordotdev/vector

Compress release Vector binaries with UPX

Open
#1,797 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

domain: ci domain: releasing have: nice meta: idea needs: approval
Dominant language
Rust
Stars
22.6k
Forks
2.3k
Avg merge
1d 7h
Merged PRs (30d)
146

Description

UPX is a compression program for executables which allows them to be compressed with subsequent decompression at runtime.

It can be used to compress Vector release binaries in order to reduce amount of space Vector occupies when placed on the target system. It is worth to note that it would not reduce size of Vector archives (and potentially might even slightly increase them).

Some questions which have to be addressed before we can proceed on it:

  • Is decompression at runtime slows down Vector start up times significantly? I think it shouldn't, when I tried it on Vector the start up time was less than half a second. But it is worth to ensure that it is acceptable to us.
  • (More important) Some malware detection tools can possibly mark all executables compressed by UPX as suspicious because they can consider them to be deliberately obfuscated, although UPX should be widespread enough nowadays (it is present in Debian and Ubuntu repositories, for example) to be explicitly supported by most of such tools. However, it is something which requires investigation/discussion.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue's proposed UPX compression of Vector release binaries. Investigate whether runtime decompression affects startup time and whether malware detection tools flag UPX-compressed executables. Done means those risks are assessed and a clear decision is made about whether to proceed.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.