web: a fizzy.js to embed fizzy on a page's canvas, without patching globals
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, wasm, zig
Línea de trabajo
Start by reading web/index.html and dvui's web.js to trace how imports, event listeners, plugins, and rendering are handled. The issue proposes a new fizzy.js module and changes to the web build API, but points to a separate build API issue for part of the scope. Done means callers can embed Fizzy on a canvas with scoped imports and listeners that destroy() removes, while index.html delegates to the module and no longer patches the global WebAssembly API.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Feature request from Graphl, which embeds fizzy's wasm on a canvas inside someone else's page. An iframe isn't an option for its users.
Today web/index.html:
- builds the
fizzyandenvimports inline - monkeypatches the global
WebAssembly.instantiateStreaming, which changes every wasm instantiation on the host page - adds
keydown,message,focusandresizelisteners onwindow, andfullscreenchangeondocument, which take the host page's shortcuts
So Graphl carries its own copy of the 12 imports.
Proposal:
- In dvui's
web.js, let callers pass extra import namespaces:dvui(canvas, url, { imports }). - Add a
fizzy.jsmodule,startFizzy({ canvas, wasm, imports, storage, beforeRun, worker })→{ instance, requestRender, destroy }. It owns the fizzy/env imports, plugin loading and input listeners, scoped to the canvas and removed bydestroy().
index.html becomes a thin caller, and the global patch goes. The web build should also let an app add wasm exports and its own page (see the build API issue).
- Lenguaje dominante
- Zig
- Estrellas
- 1.5k
- Forks
- 40
- Merge medio
- 4 h 56 min
- PR fusionados (30 d)
- 346
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fizzyedit/fizzy
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
fizzyedit/fizzy#306 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 1-2 días Aptitud para principiantes 48/100
Los mantenedores suelen responder en 1 día
-
sdk
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
fizzyedit/fizzy#529 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
fizzyedit/fizzy#527 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de fizzyedit/fizzy
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Billionmail/BillionMail#389 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
mattermost/compass-design#106 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
nordcraftengine/nordcraft#1400 ·
Los mantenedores suelen responder en 1 día
-
Remove responsibilities not working in Custom Roles & BadgesPosiblemente ocupada @thomasgwatson la tomó hoy. Abiertoagent-ready agent:needs-test
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 2 días
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
AIssoufi/issoufi.fr#220 · 1 comentario ·
Los mantenedores suelen responder en 1 día