PackageTrack
Sign in Get early access

squadron_builder

Dart code generator for Squadron workers. Implement your worker service and let squadron_builder bridge the gap with Web Workers and Isolates!

9.3.1 14K downloads/mo #2522 most downloaded on pub.dev d-markey/squadron_builder

What this package is like to depend on

Last release 8 days ago

15 Aug 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 56 of 59 stable releases

2 versions withdrawn

withdrawn after publishing

4 years old

61 releases · first in 2022

17 releases in the last 12 months

see the full history below

Release timeline

61 releases · Aug 2022 to Aug 2026
2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 61
  1. 9.3.1 15 Aug 2026
    Release notes
    • Support analyzer versions >=8.2.0.
    Open source →
  2. 9.3.0 25 May 2026
    Release notes
    • Support analyzer versions >=8.0.0.
    Open source →
  3. 9.2.0 09 Apr 2026
    Release notes
    • Support analyzer versions >=9.0.0 <13.0.0.
    • Upgrade squadron to version >=7.4.3.
    • Remove generation of elements deleted in Squadron 7.4.3.
    Open source →
  4. 9.1.0 15 Feb 2026
    Release notes
    • Support analyzer versions >=9.0.0 <11.0.0.
    Open source →
  5. 9.0.0 29 Nov 2025
    Release notes
    • Support analyzer version 9.0.0.
    Open source →
  6. 9.0.0+1 30 Nov 2025

    Nothing published for this version

  7. 9.0.0+2 07 Dec 2025

    Nothing published for this version

  8. 8.3.0 17 Nov 2025
    Release notes
    • When provided in the SquadronService annotation, include the version number as a query parameter to the Worker's URL. See also https://github.com/d-markey/squadron_builder/issues/40.
    Open source →
  9. 8.2.0 15 Nov 2025
    Release notes
    • Support passing services to other services at construction time, enabling worker cooperation.
    Open source →
  10. 8.1.0 06 Nov 2025
    Release notes
    • Remove the date/time included in generated comments. Fixes https://github.com/d-markey/squadron_builder/issues/41.
    Open source →
  11. 8.0.0 20 Sep 2025
    Release notes
    • Upgrade Dart (^3.7.0) + source_gen (^4.0.0) / build (^4.0.0) / analyzer (^8.0.0) packages.
    Open source →
  12. 8.0.0+1 22 Sep 2025
    Release notes
    • Fix doc + formatting issues for https://pub.dev/packages/squadron_builder.
    Open source →
  13. 7.1.7 17 Sep 2025
    Release notes
    • Fix extension lookup in case of cyclical imports/exports -- fixes https://github.com/d-markey/squadron_builder/issues/37.
    Open source →
  14. 7.1.6 06 Sep 2025
    Release notes
    • Fix warnings from pub.dev.
    • Fix discovery of marshalers implemented in extensions.
    • Explicitly mention extensions used for marshaling.
    • Support toJson/fromJson operating on List and String in addition to Map and dynamic.
    • EXPERIMENTAL: use marshalers/jsonifiers for classes covered by extensions targeting parent classes of the target class but not the target class itself. A class may be serialized with some extension and deserialized with another extension. Basic assessment is implemented to locate the best implementation (needs to be improved). For instance:
    class A {}
    class B extends A {}
    
    extension _MarshalerA on A {
      List marshal(); // used to marshal A and B
      static A unmarshal(List payload); // used to unmarshal back to A
    }
    
    extension _UnmarshalerB on B {
      static B unmarshal(List payload); // used to unmarshal back to B
    }
    
    • EXPERIMENTAL: search inheritance trees for unmarshalers/jsonifiers. The search will also consider unmarshal/fromJson methods and constructors from higher up in the inheritance tree. In this case, the deserialization method/factory must be aware of possible subtypes (serialization may need to include some information to tell one type vs. the other; see examples in example\inheritance\persons.dart).
    Open source →
  15. 7.1.5 01 Sep 2025
    Release notes
    • PR #35 (courtesy of https://github.com/mkidv): upgrade to source_gen (^3.0.0) / build (^3.0.1) / analyzer (^7.6.0) packages.
    Open source →
  16. 7.1.5+1 03 Sep 2025
    Release notes
    • Update version.
    Open source →
  17. 7.1.5+2 03 Sep 2025
    Release notes
    Open source →
  18. 7.1.4 16 Jun 2025
    Release notes
    • Rename WorkerAssets.override to override_ to avoid confusion with dart:core's top-level override constant -- fixes https://github.com/d-markey/squadron_builder/issues/34.
    Open source →
  19. 7.1.3 15 Jun 2025
    Release notes
    • Allow analyzer version above 7.4.0 and ignore deprecation warnings until https://github.com/dart-lang/source_gen/issues/743 and https://github.com/dart-lang/build/issues/3977 are fixed.
    Open source →
  20. 7.1.2 10 Jun 2025
    Release notes
    • Restrict analyzer version to forbid versions 7.4.0+ as source_gen / build are not compatible with the *2 analyzer APIs yet. Cf. https://github.com/dart-lang/source_gen/issues/743 and https://github.com/dart-lang/build/issues/3977.
    Open source →
  21. 7.1.1 12 Apr 2025
    Release notes
    • Serialize primary type values as is.
    • Remove item type when serializing a list or set -- fixes https://github.com/d-markey/squadron_builder/issues/30.
    Open source →
  22. 7.1.0 26 Mar 2025
    Release notes
    • Code Generator for Squadron 7.1: stop generating shortcut accessors for stats and concurrency settings.
    Open source →
  23. 7.0.0 16 Mar 2025
    Release notes
    • Code Generator for Squadron 7.0: generate code for serialization contexts + local workers.
    Open source →
  24. 6.2.0 17 Jan 2025
    Release notes
    • Set Dart SDK minimum version to 3.6.0.
    • Upgrade dependency versions (source_gen --> 2.0.0, analyzers --> 7.1.0).
    • Adapt source code where necessary.
    Open source →
  25. 6.1.5 22 Dec 2024
    Release notes
    • Revert version constraints for packages source_gen and analyzer.
    Open source →
  26. 6.1.4 21 Dec 2024 withdrawn
    Release notes
    • Update version constraints for package analyzer.
    Open source →
  27. 6.1.3 21 Dec 2024 withdrawn
    Release notes
    • Update version constraints for package source_gen.
    • Implement terminate() in disposable worker/worker pool.
    • Update examples.
    Open source →
  28. 6.1.2 14 Dec 2024
    Release notes
    • Fix pub.dev issues.
    Open source →
  29. 6.1.1 02 Nov 2024
    Release notes
    • Update serializers/deserializers when Squadron.converter is modified.
    Open source →
  30. 6.1.0 02 Nov 2024
    Release notes
    • Use marshalers for TypedData.
    • Update version number.
    Open source →
  31. 6.0.9 01 Nov 2024
    Release notes
    • Update version number.
    Open source →
  32. 6.0.8 20 Oct 2024
    Release notes
    • Don't use marshaller tear-offs when method implementations do not use dynamic (eg. GenericMarshaler<T>.marshal() could be overridden to return something more specific than dynamic).
    Open source →
  33. 6.0.7 20 Oct 2024
    Release notes
    • Don't generate converters for dynamic or void.
    • Use tear-offs instead of lambdas for marshalers where pivot type is dynamic.
    • Add support for generating local workers / local worker clients.
    Open source →
  34. 6.0.6 29 Sep 2024
    Release notes
    • Declare the service activator as const instead of final.
    Open source →
  35. 6.0.5 29 Sep 2024
    Release notes
    • Make sure no code is emitted when no worker code was generated.
    Open source →
  36. 6.0.4 29 Sep 2024
    Release notes
    • Update managed type cache asap in handleDartType() (fixes a stack overflow exception).
    • Read value of boolean flags in annotations -- fixes https://github.com/d-markey/squadron/issues/44.
    Open source →
  37. 6.0.3 28 Sep 2024
    Release notes
    • Added log messages.
    • Implemented a cache for TypeManagers -- credits go to https://github.com/jpohhhh, thanks!
    Open source →
  38. 6.0.2 24 Sep 2024
    Release notes
    • Reworked initialization of imported types.
    Open source →
  39. 6.0.1 23 Sep 2024
    Release notes
    • Do not initialize the type manager before a Squadron annotation is effectively found -- fixes https://github.com/d-markey/squadron/issues/40.
    Open source →
  40. 6.0.0 22 Sep 2024
    Release notes
    • squadron_builder for Squadron version >= 6.0. Please note there are no versions 3.x-5.x in order to align squadron_builder version numbers with that of Squadron.
    • Removed support for 'useLogger' and 'SerializeWith' annotations.
    • Added support for libraries imported with a prefix -- fixes https://github.com/d-markey/squadron_builder/issues/14.
    • Added support for record types.
    Open source →
  41. 2.4.5 19 Jan 2024
    Release notes
    • Fix bug for async service method decorated with a marshaler: the service method was called twice if the return value is nullable!
    Open source →
  42. 2.4.4 09 Sep 2023
    Release notes
    • Remove debug output leftovers.
    Open source →
  43. 2.4.3 07 Sep 2023
    Release notes
    • Fix bug when generating code for generic service methods -- type arguments were lost in the process.
    • Fix bug when a service method argument has no associated element per Dart's analyzer -- such arguments will always be marshalled as-is.
    • These two corrections fix https://github.com/d-markey/squadron/issues/26.
    • Added example json.
    Open source →
  44. 2.4.2 23 Aug 2023
    Release notes
    • Fix bug when service method returns FutureOr<void> or Future<void>.
    • Make the generated operations map unmodifiable.
    • PR #7 by guid-empty: Minor changes to support required fields and fix to have Iterable parameters
    • PR #8 by techouse: Allow usage of analyzer v6
    • Updated examples.
    • Added topics and funding information to pubspec.
    Open source →
  45. 2.4.1 27 Jun 2023
    Release notes
    • Added example/README.md to comply with pub.dev checks.
    Open source →
  46. 2.4.0 27 Jun 2023
    Release notes
    • Reorganized example folder and updated README.
    • Revised code generation strategy for operations map: previously, the operations map was generated in a mixin class and the (user-developed) service class had to derive from WorkerService and mix in with the generated mixin class. This is no longer required and the generated code now implements a private service class (deriving from the user's service class) which implements WorkerService with the generated operations map. This removes several constraints on service implementation and enables support of "plain old Dart objects" as Squadron services. User-developped service classes must be public and concrete (non-abstract, non-final, non-sealed...) and must provide an unnamed constructor which will be called by the associated generated WorkerService class.
    • Service method/constructor parameters whose type implement marshal()/unmarshal() or marshall()/unmarshall() methods will be automatically serialized using these methods if no explicit marshaler is provided. marshal()/unmarshal() have priority over marshall()/unmarshall(). These methods also have priority over automatic JSON serialization available since version 0.9.0. The marshaling method must be an instance method taking no arguments; the unmarshaling method must be static and accept one argument. squadron_builder will not verify parameter or return types of these methods, but obviously if the marshaling method of class T returns type U, the unmarshaling method must accept a U argument and return an instance of T. Failure to comply with this contract may lead to Dart compilation errors.
    Open source →
  47. 2.3.1 19 Jun 2023
    Release notes
    • Eliminate async code generation for additional assets.
    • Properly resolve Squadron's main library.
    Open source →
  48. 2.3.0 11 Jun 2023
    Release notes
    • Properly handle platform worker thread parameter + getter in generated worker/worker pool when with_finalizers is enabled (fix for https://github.com/d-markey/squadron_builder/issues/5).
    • Refactored service/method parameter management.
    • Enable code generation for libraries that define several services. This will run as expected on native platforms where worker entrypoints are top-level static methods. It will not work on Web platforms where worker entrypoints are URLs: each worker needs its own URL, hence its own library.
    Open source →
  49. 2.2.0 07 Jun 2023
    Release notes
    • Automatically discover Squadron capabilities (WorkerRequest/WorkerResponse serialization type + availability of EntryPoint and PlatformWorkerHook).
    • Retire option serialization_type as it is now discovered automatically.
    Open source →
  50. 2.1.2 17 May 2023
    Release notes
    • Downgrade version for analyzer (fix for https://github.com/d-markey/squadron_builder/issues/4).
    Open source →
  51. 2.1.1 16 May 2023
    Release notes
    • Downgrade version for analyzer (fix for https://github.com/d-markey/squadron_builder/issues/4).
    Open source →
  52. 2.1.0 11 May 2023
    Release notes
    • Enable support of Dart 3.
    • Fix issues reported by pub.dev score.
    • Add option serialization_type to configure the serialization type used for worker request/response (Map for Squadron < 5.0.0, List for Squadron >= 5.0.0).
    Open source →
  53. 2.0.0 06 May 2023
    Release notes
    • Breaking changes: several renamings, in particular the builder name which is now squadron_builder:worker_builder.
    • Generate appropriate code for fields used as parameters in the constructor of the service class. In previous versions, the generated code for constructors did not map parameters with fields, and fields were overriden with getters/setters throwing an UnimplementedError. Please note that if the field is not final or if its value is mutable, updates will not be propagated to/from the platform worker. This is by design, because the service fields and the worker/pool fields are different instances living in different threads, and threads do not share memory in Dart and browsers.
    • Support UseLogger annotation to generate associated code during worther thread initialization.
    • Take builder options into account. In previous versions, builder options were ignored. Also upgraded source_gen to 1.3.0 (see pull request https://github.com/dart-lang/source_gen/pull/647 related to builders that produce multiple files).
    • Added explicit option with_finalizers to force or disable code generation for finalization, and make finalization actually work.
    • Split build.yaml in two to avoid interfering with the build process of client packages.
    • Reorganized the source code to make it more readable and maintainable.
    Open source →
  54. 1.0.2 26 Oct 2022
    Release notes
    • Upgrade packages.
    • Switch from deprecated element2/enclosingElement3 to element/enclosingElement.
    Open source →
  55. 1.0.1 19 Oct 2022
    Release notes
    • Specify platform support in pubspec.yaml.
    Open source →
  56. 1.0.0 18 Oct 2022
    Release notes
    • Marshal data to/from workers according to SerializeWith annotations.
    Open source →
  57. 0.9.1 15 Oct 2022
    Release notes
    • Upgrade dependencies.
    Open source →
  58. 0.9.0 14 Sep 2022
    Release notes
    • Serialize arguments/return values when toJson()/fromJson() is available.
    Open source →
  59. 0.7.1 21 Aug 2022
    Release notes
    • Annotations SquadronService + SquadronMethod.
    • Support of cancellation tokens.
    • Package upgrade.
    • Sample code.
    Open source →
  60. 0.7.0 21 Aug 2022

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive