dart_monty_ffi 0.9.0
dart_monty_ffi: ^0.9.0 copied to clipboard
Native FFI 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
MontyFfiandMontyNativeonly. Internal types (FfiCoreBindings,NativeBindings,NativeBindingsFfi,NativeIsolateBindings,NativeIsolateBindingsImpl) moved topackage:dart_monty_ffi/ffi_backend_spi.dart
Fixed #
- Emit
dart:developerwarning when zombie isolate count reaches threshold (3)
0.8.3 #
- Update
dart_monty_platform_interfaceconstraint to^0.8.0(fixes pub.dev downgrade test —MontyCancelRegistryandmonty_backend_spi.dartrequire PI 0.8.0+)
0.8.2 #
- Make
bindingsparameter optional onMontyFfi()— defaults toNativeBindingsFfi() - Enables zero-arg
MontyFfi()construction for thedart_montyconvenience API
0.8.1 #
- Align version with pub.dev (0.8.0 was not successfully published)
- Update platform_interface dependency constraint to
^0.7.0
0.8.0 #
- BREAKING: Migrate from
DynamicLibrary.open()to@Nativeannotations with Dart native build hooks - Add
hook/build.dart— automatic native library resolution via contributor/consumer dual-path strategy - Contributors:
cargo build --releaseruns automatically whennative/Cargo.tomlexists - Consumers: pre-built binaries download from GitHub Releases (atomic
.tmpdownloads with content-length validation) - Remove
NativeLibraryLoaderandlibraryPathparameter from all constructors dart testanddart runnow work with zero environment variables or manual configuration- Graceful fallback for iOS/Android targets (no crash, deferred to future PR)
- Add
-headerpad_max_install_namestobuild.rsfor macOS dylib rewriting - Add
docs/native_build.mddocumenting the build architecture
0.7.0 #
- Add
MontyNative,NativeIsolateBindings, andNativeIsolateBindingsImpl(moved fromdart_monty_native) - The Isolate bridge is now usable without Flutter, enabling CLI tools and non-Flutter Dart applications
- Wire CancellableTracker:
cancel()sets atomic flag via FFI,terminate()with 5s timeout + zombie tracking - Fix
dispose()hang on stuck FFI — now callscancel()first to unblock interpreter (#113) - Fix TOCTOU race in handle lifecycle, handle leak on error paths
- Add cancel experiment suite (9 experiments, JIT + AOT benchmark harness)
- Commit generated FFI bindings for git-based dependency resolution
0.6.1 #
- Update README with usage example and human/AI attribution
- Enrich
example/example.dartwith run, limits, external function dispatch, error handling, print capture, and snapshot/restore demos - Extend
readme_doctest.dartintegration tests (6 → 20 tests)
0.6.0 #
- BREAKING: Migrate
MontyFfitoBaseMontyPlatform(usesMontyCoreBindingsarchitecture) - Add
FfiCoreBindingsadapter - Fix
restore()to set restored instance to active state
0.4.3 #
- Version bump (no package code changes)
0.4.2 #
- Add async resume path with error handling in tier 13 ladder integration tests
0.4.1 #
- CI improvements (no package code changes)
0.4.0 #
- Handle
MONTY_PROGRESS_RESOLVE_FUTUREStag (3) in progress dispatch - Add
resumeAsFuture()andresolveFutures()toNativeBindingsand FFI implementation - Implement
resolveFuturesWithErrors()inMontyFfi
0.3.5 #
- Wire
kwargs,callId,methodCallnative accessors into pending progress results - Forward
scriptNamethroughrun()andstart()to the native layer - Parse
excTypeandtracebackfrom error JSON intoMontyException - Fix
_decodeRunResultand_handleProgresserror paths to parse full error JSON - Treat empty kwargs
{}from native layer as null (no kwargs) - Read complete result JSON on progress error for rich exception details
- Add ladder integration tests for tiers 8 (kwargs), 9 (exceptions), 15 (scriptName)
0.3.4 #
- Initial release.