Skip to content
Back to skills

Port2browser Native

ASecurity

Port rebuildable C or C++ game source to WebAssembly with Emscripten. Use for SDL, OpenGL/GLES, custom native engines, legacy renderers and native middleware dependency audits.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 18, 2026
ai-agentsc++backend

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 18, 2026

npx -y skills add infinuts/port2browser --skill port2browser-native --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Port2browser Native?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Port2browser Native
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/infinuts-port2browser-native/badge)](https://www.skillsdirectory.com/skills/infinuts-port2browser-native)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: port2browser-native
description: Port rebuildable C or C++ game source to WebAssembly with Emscripten. Use for SDL, OpenGL/GLES, custom native engines, legacy renderers and native middleware dependency audits.
license: MIT
---

# Port native source

Map executable entrypoint, frame loop, renderer, assets, input, audio, saves,
threads and networking. Separate host tools (asset compilers/code generators)
from libraries that must be rebuilt for Wasm. Native DLLs, archives and drivers
cannot be linked into a browser binary. Keep an untouched native checkout.

Prove the renderer and most difficult dependency in one scene. Read
[renderer and middleware decisions](references/renderers.md) before attempting a
large modern engine. An existing GLES/WebGL/WebGPU backend is preferable to a
rewrite when it preserves required features. A proprietary renderer DLL with no
source is a concrete dependency, not a reason to substitute an empty function.

Inspect build hooks and configure probes, pin the toolchain and dependency
revisions, and produce a separate web target. For an established CMake project,
`emcmake cmake` selects a toolchain; the project still needs an actual web target.
Do not import arbitrary flags from an unrelated demo.

Move the native loop to browser frame scheduling. Adopt explicit asynchronous
loading/platform interfaces. Choose Asyncify or JSPI only for an identified call
boundary and matching browser support; neither supplies missing OS services.
Audit stack/heap use, function-pointer casts, alignment, threads and worker data
ownership. Preserve physics timing and input semantics through focus loss.

Build with useful diagnostics first. Compare a repeatable gameplay sequence with
the native version when available. Verify the release build again after LTO,
stripping, asset conversion or compression. Retain patches, exact commands,
source revisions, download/decoded-memory measurements and browser evidence.

For raylib source, use the [raylib web playbook](references/raylib.md).

Files in this skill

  • LICENSE1 KB
  • SKILL.md2 KB
  • references/raylib.md1.3 KB
  • references/renderers.md1.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.