Skip to main content

ZIP bundles

Status

FieldValue
Extension(s).zip
Common ecosystemDesign seller and export packages
Format familyBundle/container
Satin Studio statusPlanned
Open / importNo
ExportNo
ConfidenceHigh for distribution role.

What it is

ZIP files commonly bundle many machine formats, thread charts, previews, and worksheets.

Satin Studio direction

Future import can inspect bundles and choose the best source file. Future export can package machine files, charts, and worksheets.

Versions and variants

ZIP itself is standard, but embroidery ZIP bundles vary by seller. Satin Studio should treat bundle layout as a package dialect, not as one universal convention.

File identification notes

Standard ZIP archive.

Observed structure notes

  • ZIP local file headers begin with 50 4B 03 04; central-directory records and an end-of-central-directory record describe the archive index.
  • Embroidery ZIP bundles are package conventions on top of ZIP. The archive parser only identifies files; Satin Studio still needs rules for choosing source files, sidecars, previews, and worksheets.
  • ZIP entries may use compression, data descriptors, ZIP64 extensions, and UTF-8 filename flags. Safe bundle import must reject path traversal and absolute paths before extraction.

Structure sketch

ZIP bundles are containers. Satin Studio should inspect entries and choose the best supported source file.

struct ZipBundle<'a> {
local_files: &'a [ZipLocalFile<'a>],
central_directory: &'a [u8],
end_of_central_directory: &'a [u8],
}

struct ZipLocalFile<'a> {
signature: [u8; 4], // 50 4B 03 04
file_name: &'a str,
compressed_payload: &'a [u8],
}

What we still need

Bundle inspection UI and safe archive handling.