javy-codegen 4.0.0

Wasm generation library for use with Javy
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic
Versioning](https://semver.org/spec/v2.0.0.html).

## [4.0.0] - 2026-03-17

### Changed

- The `generate` method on `Generator` is now async.

### Added

- `Generator::deterministic()` and CLI `-C deterministic` option for reproducible
  static-linked Wasm builds. When enabled, fixed clocks and deterministic
  (zero-filled) RNG are used during Wizer pre-initialization to avoid
  timestamp- and randomness-induced non-determinism. **Security note:**
  `secure_random` and `insecure_random` are replaced with a constant
  deterministic source when this flag is active — do not rely on WASI random
  APIs for cryptographic security in deterministic mode.
- `init-plugin --deterministic` now also fixes both the secure and insecure
  random sources and disables parallel compilation for fully reproducible
  plugin initialization.

## [3.0.0] - 2025-11-12

### Changed

- `cabi_realloc` will not be removed while generating a statically-linked Wasm module from a JS file.

### Removed

- WIT files without semicolons are no longer supported.

## [2.0.0] - 2025-08-28

### Added

- `Generator` now has a `producer_version` method so the version in the
  producers custom section can be set.

### Changed

- The API plugins are required to conform to has been updated. Please consult
  the extending Javy documentation for the new API.
- `Plugin::new` now validates the bytes are a valid plugin and returns a
  result.
- The `source_compression` method of `Generator` has been replaced with a
  `source_embedding` method which takes `SourceEmbedding` argument, specifying
  whether the source custom section should be omitted, uncompressed, or compressed.

## [1.0.0] - 2025-03-10

Initial release