dart_monty_wasm 0.9.0
dart_monty_wasm: ^0.9.0 copied to clipboard
WASM backend for dart_monty, pure Dart bindings for Monty — a restricted sandboxed Python interpreter built in Rust.
0.9.0 #
Breaking #
- Trim public barrel to
MontyWasmonly. Internal types (WasmBindings,WasmBindingsJs,WasmCoreBindings,WasmRunResult,WasmProgressResult) moved topackage:dart_monty_wasm/wasm_backend_spi.dart
Fixed #
- Invalidate WASM session after
MontyPanicError— nulls_sessionIdsoinit()can respawn a fresh Worker instead of reusing a dead one
0.8.4 #
- Update
dart_monty_platform_interfaceconstraint to^0.8.0(fixes pub.dev downgrade test —MontyCancelRegistryandmonty_backend_spi.dartrequire PI 0.8.0+)
0.8.3 #
- Implement
MontyFutureCapableonMontyWasm— WASM backend now supportsresumeAsFuture()andresolveFutures() - Fix
expectErrorhandling for iterative fixtures in WASM ladder runner - Fix async futures path wiring in WASM ladder runner
0.8.2 #
- Fix:
WasmBindingsJsnow uses static method bindings matching the JS bridge API (was broken: tried to callnew DartMontyBridge()which doesn't exist) - Make
bindingsparameter optional onMontyWasm()— defaults toWasmBindingsJs() - Add
_ensureInit()to guarantee default Worker session exists before any operation
0.8.1 #
- Align version and dependency constraints for clean pub.dev release
0.8.0 #
- BREAKING: Replace NAPI-RS runtime with direct C-ABI calls to 28 exported Rust functions via
wasm32-wasip1 - Eliminate SharedArrayBuffer/COOP/COEP requirement
- WASM binary drops from 256MB overhead to 4.5 MB
- Minimal WASI shim (6 imports), zero npm runtime dependencies
- New
wasm_glue.jsbridges main thread to Worker via direct C-ABI
0.7.0 #
- Multi-session Worker pool:
createSession,disposeSession,getDefaultSessionId - Strip NAPI-RS overhead:
asyncWorkPoolSize: 0,shared: false, 16MB per session (was 256MB) - Binary snapshot transfer via
Uint8Array(avoid JSON serialization for snapshots) - Timeout caching for repeated executions
- Wire cancel path:
disposeSession()callsWorker.terminate()for preemptive kill - Add WASM cancel benchmark (T1-1W, T1-4W, T2-2W, T3-1W + 5 N/A documented)
- Add
getDefaultSessionIdto production bridge.js export
0.6.1 #
- Fix
toSerializable()in worker bridge for robust dict/set/bigint handling- Add circular reference guard (WeakSet) to prevent stack overflow
- Add cross-realm Map/Set duck-typing via
.getpresence/absence - Convert Set → Array (Python frozenset/set from NAPI-RS)
- Convert BigInt → Number/String (prevents JSON.stringify crash)
- Convert TypedArray → Array (Python bytes from NAPI-RS)
- Update README with usage example and human/AI attribution
- Enrich
example/example.dartwith limits, external function dispatch, and error handling demos
0.6.0 #
- BREAKING: Migrate
MontyWasmtoBaseMontyPlatform(usesMontyCoreBindingsarchitecture) - Add
WasmCoreBindingsadapter
0.4.3 #
- Version bump (no package code changes)
0.4.2 #
- Version bump (no package code changes)
0.4.1 #
- CI improvements (no package code changes)
0.4.0 #
- Handle
resolve_futuresprogress state inMontyWasm - Add
pendingCallIdsfield toWasmProgressResult - Stub
resumeAsFuture(),resolveFutures(),resolveFuturesWithErrors()withUnsupportedError(NAPI-RS does not expose FutureSnapshot API)
0.3.5 #
- Wire WASM JS bridge: kwargs, callId, scriptName, excType, and traceback in worker responses
- Fix worker onerror to reject pending promises on crash
- Fix
restore()state machine to return active instance - Add ladder tier files for tiers 8, 9, 15 to runner
0.3.4 #
- Initial release.