Skip to content

[campaign] AffineScript top-50 framework bindings roadmap (UMBRELLA) #446

Description

@hyperpolymath

Campaign overview

Land the AffineScript top-50 framework bindings roadmap. Compiled 2026-05-28 during post-PR-#107 (idaptik dlc-reversible pilot) planning, five tiers × 10 bindings. Drives the framework-binding development arc going upstream from idaptik into hyperpolymath/affinescript + affinescript-pixijs + new packages.

State: planning UMBRELLA. List captured in memory (project_affinescript_bindings_top50_roadmap); this issue lands it canonically + opens per-binding tracking once tier-issues are filed.

Why this matters now

This roadmap is the shared Layer-4 dependency for THREE estate campaigns:

Without this roadmap landing, all three campaigns' STEP-4 work is unscheduled.

Current state of binding packages (2026-05-28 inventory)

Package State Notes
stdlib/Deno.affine ● usable WasmExports type + wasmInstance + readFile; transpiler-direct
stdlib/Vscode.affine, VscodeLanguageClient.affine ● usable Issue #35 Phase 3 closed; VSCode extension dogfoods this
stdlib/Http.affine, Crypto.affine, Network.affine, Sqlite.affine, Grammy.affine, Ajv.affine ◑ partial extern declarations exist; coverage audits pending
affinescript-dom ●/◯ blocked-by-#255 187-line vDOM + reconciler exists; wasm-codegen for-in/while bug blocks runtime
affinescript-pixijs ◐ scaffold 1 .as file + 1 Idris2 ABI + 1 Zig FFI; NOT functional. Largest single unblocker for idaptik
affinescript-vite ◑ partial Vite plugin for AS projects (not a binding TO Vite)
affinescript-tea ◑ partial TS side exists; AS-side TEA pattern implicit
affinescript-deno-test ◑ partial Test harness — relevant for binding #48

The 50 bindings (tier summaries)

Tier 1 — idaptik blockers (10): PixiJS core + sound + UI; motion; WASM-exports calling pattern; Phoenix Channels / WebSocket; DOM (unblock affinescript#255); WebGL/Canvas2D; IPC/postMessage for Gossamer; Ajv coverage audit.

Tier 2 — estate near-term (10): GitHub API (rewire to hpm-github-api-rsr); Anthropic API; HTTP coverage; raw WebSocket; SQLite coverage; Crypto rewire to hpm-crypto-rsr; Tauri 2.0; Dioxus; Zig FFI canonical patterns doc; Grammy coverage.

Tier 3 — broadly useful (10): Web Audio; Gamepad; Pointer/Touch/Keyboard/IME; IndexedDB; Workers; Streams (Fetch); Storage / Cache; Notifications; Geolocation/sensors; MediaDevices.

Tier 4 — backend/cloud (10): Postgres; Redis; S3/object-storage; GraphQL client; OpenTelemetry; OpenAI; Cloudflare API (not Workers, banned); Stripe; Supabase; Slack + Discord APIs.

Tier 5 — tooling/interop (10): Idris2 ABIs; Rust FFI; OCaml interop; Just integration; Vite plugin pattern; esbuild/Rollup plugin; Playwright; Testing coverage; VSCode coverage; generic LSP.

Recommended kickoff

  1. WASM-exports calling pattern (Tier 1, item 5) — smallest scope (~30 extern fns or one generic wasm_export_call); unblocks idaptik vm/wasm AND every future WASM-host integration. Estimated < 1 day.
  2. PixiJS core (Tier 1, item 1) — largest single unblocker (215 idaptik src/app files depend). Multi-week; scaffold exists. Start with minimal Application + Container + Sprite surface.
  3. DOM unblock via affinescript#255 — codegen bug, not a binding. Adjacent / different repo.

Step plan (deferred — file as sibling issues when work begins)

Excluded by policy

  • Cloudflare Workers runtime
  • React Native, Flutter
  • Non-SaltStack Python ecosystem

Cross-references

  • Standards campaigns: hyperpolymath/standards#252, #253, #254, #239
  • Project board: https://github.com/users/hyperpolymath/projects/35
  • Memory: project_affinescript_bindings_top50_roadmap.md
  • Idaptik dlc-reversible pilot: hyperpolymath/idaptik#107 (MERGED)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bindingsABI, FFI, WASM, and cross-language interop surfacesdocumentationDocs, prose, diagrams, READMEs, ADRsmajorMajor issue — significant scope, broader impact than a feature/bugmeta:campaignCoordinated multi-repo push with a defined end statemeta:umbrellaParent issue aggregating child issues

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions