whisker-cng 0.5.1

Whisker Continuous Native Generation — declarative Android/iOS project generation from whisker.rs.
Documentation

Whisker CNG (Continuous Native Generation).

Renders the Android / iOS host projects under gen/{android,ios}/ from the user's whisker.rs (= [whisker_config::Config]). Drift between the in-tree files and the current config is detected via a content-hashed fingerprint stored alongside each generated tree (gen/<platform>/.whisker-fingerprint).

Modelled on Expo's CNG: the source of truth is the declarative config, the platforms directory are build artifacts (never committed). Unlike Expo, regeneration is implicit — there's no separate whisker generate command. Whichever command needs the native tree (today: whisker run) calls [sync_android] / [sync_ios] first; the fast path (fingerprint match) is a single file read and returns instantly.

Public entry points

  • [sync_android] / [sync_ios] — render-or-skip for one platform. Returns whether files were actually rewritten.
  • [AndroidInputs] / [IosInputs] — the renderer's input bundle. Build them yourself for full control, or use [android::inputs_from] / [ios::inputs_from] for the "extract from Config + defaults" path.

The crate has no CLI surface and shells out to nothing — whisker-cli is responsible for running xcodegen, gradle, etc. after a sync completes. Keeping side-effects out of the renderer makes it cheap to unit-test against tempdirs.