Skip to content

FireCraft v0.1.0

Choose a tag to compare

@aliasfoxkde aliasfoxkde released this 13 Oct 00:24
· 198 commits to main since this release
Immutable release. Only release title and notes can be modified.

FireCraft v0.1.0 — first tagged release (M0–M12 complete)

A clean-room reimplementation of Adobe Fireworks CS6 in pure Rust:
the Fireworks PNG (.fw.png) format read/write with full node-tree
fidelity, a deterministic CPU compositor, vector editing with boolean
ops and Auto Shapes, bitmap layers with live filters, text (including
text-on-path), symbols and nine-slice, .jsf scripting with a History
panel, and import/export across PSD, SVG, PNG, JPEG, BMP, TIFF, WBMP
and animated GIF. Every milestone gate is green and the
performance/memory ceilings are enforced on CI
(docs/planning/generated/parity.md).

License: dual-licensed MIT OR Apache-2.0 (LICENSE-MIT /
LICENSE-APACHE). Clean-room method: built from public specs and
observed behavior; no Adobe code or assets.

== Web bundle (WASM — the primary target) ==

firecraft-web-0.1.0.zip — static bundle for any static host:
index.html + one .js + one .wasm (~10.9 MB) + MANIFEST.sha256.

Cloudflare Pages quick start:

  1. Download and unzip (files sit at the zip root).
  2. Cloudflare dashboard -> Workers & Pages -> Create -> Pages ->
    "Upload assets", and drop the unzipped folder. Or:
    npx wrangler pages deploy
  3. Done — Pages serves over HTTPS with the right application/wasm
    MIME type, which the bundle's streaming instantiation requires.
    file:// will not work.

For WebOS embedding (iframe + postMessage bridge: openDocument /
apply / exportPng / exportDocument), see docs/WEBOS.md in the repo —
its worked host page is executed verbatim by the release gate's
bridge smoke.

== Linux x86_64 ==

firecraft-0.1.0-linux-x86_64.tar.gz desktop shell + CLI
(firecraft-0.1.0/{bin,share/licenses})
firecraft-cli-0.1.0-linux-x86_64.tar.gz headless CLI alone
firecraft_0.1.0_amd64.deb pinned-control deb;
apt install ./firecraft_0.1.0_amd64.deb
MANIFEST.sha256 over the three above;
sha256sum -c verifies

Requires glibc >= 2.31. GPU not required — the compositor is
deterministic CPU.

== Other platforms ==

This release was built and verified on Linux x86_64. Recipes for
AppImage (packaging/build-appimage.sh), macOS universal dmg
(packaging/build-macos-dmg.sh) and Windows portable zip + installer
(packaging/build-windows.ps1) ship in the repo — the repo carries no
artifact it did not build and verify (docs/TOOLCHAINS.md).

== SHA-256 ==

340ec09dfda307eaa51627e60b8fff1fdbaf3a200f174ac56fb615afdecd6ca1 firecraft-web-0.1.0.zip

Native archives are hashed inside the release's MANIFEST.sha256.

== What shipped (M0–M12) ==

  • Format: Fireworks PNG read/write, byte-identical round-trips,
    unknown-node preservation, 16-file corpus pinned by digest
  • Engine: journaled command registry, undo/redo, replay-exact,
    fuzz-armed (10 targets, 60s+ campaigns, 0 crashes)
  • Vector: booleans, simplify/expandStroke/inset, 11 Auto Shapes,
    align/distribute, point editing
  • Bitmap + filters: selections, retouch brushes, live filter stacks
    (brightness/contrast, levels, HSL, blur, unsharp, find-edges...)
  • Text: shaping via cosmic-text, bundled Liberation Sans (OFL),
    text-on-path
  • Symbols: definitions/instances, rich symbols, nine-slice, Common
    Library import/export
  • Import/export: PSD (layered, RLE) both ways, SVG both ways, raster
    codecs, animated GIF states, web export (HTML+Images shim tables,
    CSS layers, sprites, pages-to-files)
  • Automation: .jsf scripting host (ES3 semantics), CLI with stdin
    control channel, MCP server — all through the same registry ids
  • Web: egui shell compiled to wasm32, postMessage bridge, ~10.9 MB
    bundle, bridge smoke-tested on the release bytes