Skip to content

[Feature]: Archive extraction support #90

@MiguelRegueiro

Description

@MiguelRegueiro

Request

Elio should support extracting common archive files directly from the file list.

Originally requested by @C0LD-96 in #86:

I'd love to see support for native archive (zip,7z..) inside elio, so that maybe with key "e" you could extract directly the archive?

Initial scope

Support .zip, .tar, and .tar.gz, extracting into a sibling directory named after the archive. These formats are already handled by the zip, tar, and flate2 crates used for archive previews, so v1 should not need new dependencies or platform-specific external tools.

Additional Context

Things to consider:

  • Safe extraction: reject entries whose resolved path escapes the destination directory.
  • Conflict behavior when the destination already exists.
  • Progress / cancel UI for larger archives.
  • Refreshing the directory after extraction.
  • Platform differences around permissions, symlinks, Windows-illegal filename characters, and case-insensitive filename collisions on macOS / Windows.
  • .7z and .rar support should be handled separately after v1 lands, since they may require additional dependencies and a more careful compatibility/licensing review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions