Skip to content

Request for reproducible build #153

@nolag

Description

@nolag

We use Wizer via Javy to compile their TS to WASM. Our customers need to prove their WASM builds, similar to what's done on blockchains. Today, Go customers can do so because Go has reproducible builds, but our TS customers will still need to use Docker because Wizer doesn't offer reproducible builds for the same input.

My ask is to add a flag to the CLI and a the builder that enables reproducible output from Wizer.

Claude suggested

smallest_gaps.sort_unstable_by_key(|g| g.gap); could be replaced with smallest_gaps.sort_by(|a, b| a.gap.cmp(&b.gap).then(a.index.cmp(&b.index)));, but that alone didn't suffice. Running on a Mac M2 and a Linux Docker image on my Mac still produced different binaries (Linux x64 had the same as Linux Arm when I specified a platform). The binaries even had different sizes.

In our case, the Javy plugin itself is compiled in a Docker, since Rust isn't deterministic, but it would be good if that could be verified once, then our customer code verified to use that plugin without requiring a Docker.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions