NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2570 most downloaded on pub.dev
Create long-lived isolates for single or multiple functions, with support for Web Workers (via an efficient generator) and WASM compilation.
Last release 5 months ago
12 Apr 2026
Release timing varies
gaps range from 9 days to 5 months
Most releases are documented
notes for 44 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
134 releases · first in 2022
Add debugName parameter for improved debugging in IsolateManager.
debugName parameter for improved debugging in IsolateManager.Fix the docs to clarify WASM transferables (enableWasmTransferables parameter) behavior in README.
enableWasmTransferables parameter) behavior in README.One column per quarter.
BREAKING CHANGE: Removed --omit-implicit-checks option. Before (the option is added automatically):
-- to pass arguments to the Dart compiler.isolate_manager_generator ^0.4.0.^10.2.0.isolate_manager_generator ^0.4.0:
BREAKING CHANGE: Removed --omit-implicit-checks option.
Before (the option is added automatically):
dart run isolate_manager_generator
After (the option is added manually):
dart run isolate_manager_generator -- --omit-implicit-checks
BREAKING CHANGE: Removed unused source map generation and cleanup logic. Before (the option is added automatically):
dart run isolate_manager_generator
After (the option is added manually):
dart run isolate_manager_generator -- --no-source-maps
BREAKING CHANGE: The js.deps files are no longer removed automatically, and there is no helper available for this change.
Bump the dart analyzer to ^10.0.0.
Add cross-platform transferables support (fixes #56, thanks to @kartikey321).
enableWasmTransferables parameter to automatically omit transferables on WASM targets for better performance.queueStrategy and workerConverter types for better null safety (fixes #54).Improve the way to check if the isolate_manager_generator is installed.
Hide the IsolateManagerCustomWorker class.
IsolateManagerCustomWorker class.Because this attribute does nothing so I won't treat it as a breaking change.
IsolateManagerController.initialParams to avoid unexpected access. Because this attribute does nothing so I won't treat it as a breaking change.onInitial.Update IsolateManager docs for runFunction and runCustomFunction.
IsolateManager docs for runFunction and runCustomFunction.enableWasmConverter parameter to IsolateManager.* Improve README.
Nothing published for this version
This major release incorporates numerous features, improvements, fixes, and breaking changes developed through the preceding release candidates. For a…
This major release incorporates numerous features, improvements, fixes, and breaking changes developed through the preceding release candidates. For a smooth transition, review the breaking changes section below. If you need information about deprecated methods before upgrading, please use v6.0.0-rc.24.
BREAKING CHANGES:
JS Recompilation Required: All JS worker files MUST be recompiled using dart run isolate_manager:generate. This is necessary due to internal changes in data transfer mechanisms (introduced in rc.1) and worker naming conventions (introduced in rc.21).
Generator Package: The generator functionality has been separated into the isolate_manager_generator package. This package MUST now be added to your dev_dependencies to use the dart run isolate_manager:generate command (separated in rc.10, made mandatory in rc.25).
Deprecated Methods Removed: All methods previously marked as deprecated have been removed (introduced in rc.25). Please update your code to use their replacements.
ImType Refactoring: ImType and its subclasses (ImList, ImMap) have been refactored to prevent nullable values being wrapped directly, ensuring type safety. Use non-nullable types within ImType.
QueueStrategy Renaming: The QueueStrategy enums have been renamed for clarity:
QueueStrategyUnlimited → UnlimitedStrategyQueueStrategyRemoveNewest → DropNewestStrategyQueueStrategyRemoveOldest → DropOldestStrategyQueueStrategyDiscardIncoming → RejectIncomingStrategyException Type Change: UnimplementedError thrown by ImType wrapper methods has been replaced with the more specific UnsupportedImTypeException.
Shared Worker Naming: Shared workers now only accept the basename of the workerName (changed in rc.21).
New Features:
IsolateManager.run: Added a method similar to Isolate.run that supports execution on both VM Isolates and Web Workers.IsolateManager.runFunction: Added a method that automatically applies the correct workerName when running a function, simplifying shared worker usage.IsolateManager.runCustomFunction: Added support for custom isolate execution logic with optional callbacks and debug logging.ImType System: Introduced ImType (replacing IsolateType) and its subclasses (ImList, ImMap) to enforce type safety for parameters and return values, especially for Web Worker generation.ImType Helper Methods: Added convenient methods to ImList (toIterable, toList, toDecodedIterable, toDecodedList) and ImMap (toMap, toDecodedMap). The toDecoded... methods replace previous toUnwrapped... methods.IsolateException) that can be safely transferred between the main isolate and workers.ImType Debugging: Added toString() methods to ImType subclasses for easier debugging.--worker-mappings-experiment=lib/main.dart) for the generator to automatically create workerMappings.Improvements:
Performance:
Map instead of json.dartify and jstify for web interoperability.IsolateState detection.assert for logging messages, improving release mode performance.Error Handling:
dart run isolate_manager:generate) now returns a non-zero exit code on errors, improving CI/CD integration.UnsupportedImTypeException for unsupported nullable types in ImType, ImList, ImMap.API & Usage:
wrap/unwrap methods (replacing encode/decode) for ImType data handling.onInit callback for IsolateManagerFunction.customFunction, replacing the previous onInitial. The initialParameter argument for IsolateManager.createCustom is no longer used with onInit.CustomIsolateFunction to IsolateCustomFunction for clarity.workerName for shared workers now uses the latest mapping value dynamically, avoiding the need to restart after updates.ImType equality and hash code implementations (replacing Equatable).int, Iterable<int>, Set<int>, List<int> handling when compiling to WASM.ImType can now be declared as const.IsolateManagerShared.Generator:
Code Quality:
very_good_analysis for stricter linting rules.Fixes:
useWorker was true but no workerName was provided.Testing:
WASM Support: Added support for running tests on WASM (dart test --platform=chrome --compiler dart2wasm) and updated CI workflows accordingly. Updated WASM benchmarks.
Benchmarks: Rewrote and updated benchmarks, including results in the README.
Test Infrastructure:
test/bin/run.sh) to generate workers and run all tests.flutter test to dart test for accurate VM and Chrome testing.General: Added and strengthened tests throughout the development cycle.
Dependencies:
isolate_manager_generator in dev_dependencies for code generation.web package dependency to ^1.0.0.Documentation:
Add isolate_manager_generator to dev dependencies in the example.
isolate_manager_generator to dev dependencies in the example.The isolate_manager_generator MUST be added to dev_dependencies to use dart run isolate_manager:generate.
isolate_manager_generator MUST be added to dev_dependencies to use dart run isolate_manager:generate.dart run isolate_manager:generate execution for better error handling in CI/CD pipelines.* Improve README.
QueueStrategyUnlimited → UnlimitedStrategy
QueueStrategys:
QueueStrategyUnlimited → UnlimitedStrategyQueueStrategyRemoveNewest → DropNewestStrategyQueueStrategyRemoveOldest → DropOldestStrategyQueueStrategyDiscardIncoming → RejectIncomingStrategy* Improve README.
Update wrap methods to throw UnsupportedImTypeException when wrapping nullable types in ImType, ImList, and ImMap.
UnsupportedImTypeException when wrapping nullable types in ImType, ImList, and ImMap.The shared worker now only accept the basename of the workerName to compatible with the new generator (since v0.0.6).
workerName to compatible with the new generator (since v0.0.6).Add, replace and deprecate the old methods:
ImMap.toUnwrappedMap -> ImMap.toDecodedMapImList.toUnwrappedIterable -> ImList.toDecodedIterableImList.toUnwrappedList -> ImList.toDecodedListBREAKING CHANGE Replace UnimplementedError with UnsupportedImTypeException in ImType wrapper methods.
UnimplementedError with UnsupportedImTypeException in ImType wrapper methods.toString() method to ImType subclasses for improved debugging.UnsupportedImTypeException correctly across io, js and wasm.IsolateException) that can be safely transferred between isolates.BREAKING CHANGE Refactor ImType to prevent nullable values.
Replace IsolateTypes with ImTypes and mark the old ones as deprecated.
BREAKING CHANGE Refactor ImType to prevent nullable values.
Replace encode with wrap and decode with unwrap in IsolateType handling across and mark the old ones as deprecated.
Add some useful methods:
ImList: toIterable, toList, toDecodedIterable and toDecodedList.ImMap: toMap and toDecodedMap.Improve error handling when sending exception from Worker to main.
Improve the ImType equality and hash code implementations to replace Equatable.
Add a converter helper to ensure proper type handling for int, Iterable<int>, Set<int> and List<int> when compiling to WASM.
Update tests and README.
Able to run tests on WASM via dart test --platform=chrome --compiler dart2wasm.
Update the workflows to run test on WASM.
Add new onInit callback to replace onInitial and make it as deprecated.
Fixes an issue in the shared isolate manager that useWorker is true but there is no workerName provided.
Add new onInit callback to replace onInitial and make it as deprecated.
Mark initialParameter in the IsolateManager.createCustom as deprecated:
Before:
void customIsolateFunction(dynamic params) {
IsolateManangerFunction.customFunction(
params,
onInitial: (controller, initialParams) {
// Do something here with the `initialParams`.
},
);
}
final isolate = IsolateManager.createCustom<R, P>(
customIsolateFunction,
initialParams: 'initialParams',
);
Now:
void customIsolateFunction(dynamic params) {
IsolateManangerFunction.customFunction(
params,
onInit: (controller) {
// Do something here with your own `initialParams` value.
},
);
}
final isolate = IsolateManager.createCustom<R, P>(
customIsolateFunction,
);
Improve tests.
* Update README.
Rename CustomIsolateFunction to IsolateCustomFunction, update references and mark the old one as deprecated.
runCustomFunction method to support custom isolate execution with optional callback and debug loggingworkerName now gets the latest mapping value dynamically, avoid the need to recreate the IsolateManager after updates.CustomIsolateFunction to IsolateCustomFunction, update references and mark the old one as deprecated.Refactored multiple components to improve performance.
assert to log messages, enhancing performance in release mode.* Fix README typos.
Add an IsolateManager.runFunction method that automatically applies the appropriate workerName when executing a function.
IsolateManager.runFunction method that automatically applies the appropriate workerName when executing a function.* Improve README.
Add an IsolateManager.run method that follows Isolate.run but also supports Web Workers.
IsolateManager.run method that follows Isolate.run but also supports Web Workers.IsolateType to be declared as const.* Adjust the dependencies.
Separate the generator into the isolate_manager_generator package.
isolate_manager_generator package.Fixed issue that causes subsequent tasks not to be processed after receiving an exception.
Able to compute a nullable function with a nullable parameter use IsolateManagerShared.
The IsolateType.encode is now accept the nullable values.
IsolateType.encode is now accept the nullable values.Add IsolateType to use for function parameters and return types to ensure that type is supported when generating a Worker.
IsolateType to use for function parameters and return types to ensure that type is supported when generating a Worker.test/bin/run.sh to generate and run all tests locally.dartify and jstify to improve perfomances.Improve the generator to generate the worker mappings better.
Correctly parse the dart native arguments (Fixes #36).
workerMappings by adding the --worker-mappings-experiment=lib/main.dart flag to the generator.dart test instead of flutter test so we can correctly test the code on both vm and chrome.IsolateState.Bump the web package to ^1.0.0.
web package to ^1.0.0.analyzer package to ^6.0.0.BREAKING CHANGE All the JS files MUST BE recompiled by running dart run isolate_manager:generate.
dart run isolate_manager:generate.json with the Map when sending and receiving data.Although all tests are passed, many things will be refactored before version 6.0.0 is fully released.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Change the type of the Map from String to dynamic when converting by dartify.
Map from String to dynamic when converting by dartify.Able to create a Map function and use it as a Worker instead of using JSON.
Map function and use it as a Worker instead of using JSON.Set the max number of the queued computations.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Able to add options and flags directly into to Dart to Js Compiler.
--debug flag is specified).Your coding agent can read these notes before it upgrades. Set up the MCP server →