dwds
A service that proxies between the Chrome debug protocol and the Dart VM service protocol.
27.1.2
5.9M downloads/mo
#125 most downloaded on pub.dev
dart-lang/webdev
What this package is like to depend on
Last release 2 months ago
15 Jun 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 139 of 154 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
154 releases · first in 2019
18 releases in the last 12 months
see the full history below
Release timeline
154 releases · Mar 2019 to Jun 2026Releases
latest 60 of 154-
27.1.215 Jun 2026Release notes
Open source →- Bump the min sdk to 3.13.0-107.0.dev.
- Allow package_config
3.x.x. - Internal only changes.
Release notes
Open source →-
Bump the min sdk to 3.13.0-107.0.dev.
-
Internal only changes.
-
Allow package_config
3.x.x.
-
27.1.130 Apr 2026Release notes
Open source →- Fix deserialization errors appearing in the chrome console.
Replace raw map for client ping checks with a properPingRequestclass and
update client deserialization handling.
Release notes
Open source →- Fix deserialization errors appearing in the chrome console.
Replace raw map for client ping checks with a proper
PingRequestclass and update client deserialization handling.
- Fix deserialization errors appearing in the chrome console.
-
27.1.010 Apr 2026Release notes
Open source →- Add
appNametoDartDevelopmentServiceConfiguration. - Add
dartExecutabletoDartDevelopmentServiceConfiguration.
- Add
-
27.0.314 Apr 2026 -
27.0.213 Apr 2026Release notes
Open source →What's Changed
- Throwing an error when reloaded sources when reloaded_sources.json is empty or null by @Markzipan in #2810
- Add
dartExecutabletoDartDevelopmentServiceConfiguration. by @Markzipan in #2814
Cherry-picked above changes to avoid release block by Dart 4.12. We should await its release before pinning dwds 27.1.0.
-
27.0.108 Apr 2026Release notes
Open source →- Replace
package:uuiddependency with internalUuidclass for generating version 4 UUIDs. - Add DDC Library Bundle tests in
dwds/test/integration/instances. - Fix WebSocket reconnection hang by ensuring Dart isolate recreation when a new browser client reuses an
AppDebugServices. - Don't inject script loads from within DWDS when executing with build_runner + DDC Module Bundles.
- Handle out of order disconnects and reconnects.
- Update dwds to support ignoring disconnects for the SseHandler. This is
useful to prevent incorrect behavior when a disconnect event arrives after
a new connection request.
- Update dwds to support ignoring disconnects for the SseHandler. This is
- Add sourcemap logic fixes to DDC Library Bundle + build_runner execution scheme.
- Update pathing logic for Windows and the DDC Library Bundle module system.
- Fix serialization of
HotRestartRequestinAppConnection. - Split integration tests across DDC module systems.
- Split additional tests across DDC module systems.
- Fix issue where
DebugConnectiondid not completeonDoneifWebkitDebuggerfails to reconnect to the debugger after the connection closes. - Fix
FormatExceptioninExtensionDebuggerby makingExtensionEvent.fromJsonrobust to missing headers and Map-typed params. - Fix
StateErrorinDwdsInjectorduring AOT execution by bundlingclient.jsas a statically compiled asset.
Release notes
Open source →- Replace
package:uuiddependency with internalUuidclass for generating version 4 UUIDs. - Add DDC Library Bundle tests in
dwds/test/integration/instances. - Fix WebSocket reconnection hang by ensuring Dart isolate recreation when a new browser client reuses an
AppDebugServices. - Don't inject script loads from within DWDS when executing with build_runner + DDC Module Bundles.
- Handle out of order disconnects and reconnects.
- Update dwds to support ignoring disconnects for the SseHandler. This is useful to prevent incorrect behavior when a disconnect event arrives after a new connection request.
- Add sourcemap logic fixes to DDC Library Bundle + build_runner execution scheme.
- Update pathing logic for Windows and the DDC Library Bundle module system.
- Fix serialization of
HotRestartRequestinAppConnection. - Split integration tests across DDC module systems.
- Split additional tests across DDC module systems.
- Fix issue where
DebugConnectiondid not completeonDoneifWebkitDebuggerfails to reconnect to the debugger after the connection closes. - Fix
FormatExceptioninExtensionDebuggerby makingExtensionEvent.fromJsonrobust to missing headers and Map-typed params. - Fix
StateErrorinDwdsInjectorduring AOT execution by bundlingclient.jsas a statically compiled asset. - Report errors when an empty reloaded_sources.json is seen in the DDC Library Bundle module system.
- Replace
-
27.0.020 Feb 2026Release notes
Open source →- Remove
package:built_value,package:built_value_generator, andpackage:built_collectiondependencies. - Remove
serializers.dartanddata_serializers.dart. - Remove
package:built_valuedependency fromConnectFailure,DebugStateChange,DevToolsOpener,DevToolsUrl,IsolateStart,IsolateExit,DevToolsRequest,DevToolsResponse,ExtensionRequest,ExtensionResponse,ExtensionEvent, andBatchedEvents; switch to standard Dart JSON serialization. - Update
ConnectFailure,DebugStateChange,DevToolsOpener,DevToolsUrl,DevToolsRequest,DevToolsResponse,ExtensionRequest,ExtensionResponse,ExtensionEvent,BatchedEventsandDebugInfoserialization to mimicbuilt_value's list-based format to resolve compatibility issues with the debug extension. - Remove
build,build_daemon,build_runner,build_version,build_web_compilers, andpubspec_parsedependencies, along withbuild.yamlwhich originally generatedclient.jsusingbuild_runner.client.jsis now compiled viadart compile jsin a newtool/build.dartscript. - Throw
RPCErrorwhen providing invalidpause_isolates_on_startvalues to the Chrome Proxy Service. - Fix deserialization of
HotRestartRequest,HotReloadResponse,HotRestartResponse, andServiceExtensionResponsein theDevHandler. - Add and export
BuildRunnerDdcLibraryBundleStrategyProvider. - Add support for Build Runner + DDC Module Bundle in test fixtures.
- Unify
assetHandlerandassetReaderinBuildRunnerStrategyProviderMixin. - Resolve test suite flakiness for port discovery.
- Bump
build_web_compilersto ^4.4.12.
- Remove
-
26.2.515 Jan 2026Release notes
Open source →- Remove
package:built_valuedependency fromErrorResponseandRegisterEvent; switch to standard Dart JSON serialization. - Adding retries to Chrome Proxy Service connections.
- Remove
-
26.2.413 Jan 2026Release notes
Open source →- Remove
package:built_valuedependency fromDebugEvent,BatchedDebugEvents,ConnectRequest,RunRequest,DebugInfo,HotReloadRequest,HotReloadResponse,HotRestartRequest,HotRestartResponse,ServiceExtensionRequest,ServiceExtensionResponseandBuildResult; switch to standard Dart JSON serialization. - Adding guards for dwds-injected library loading for Flutter Web.
- Remove
-
26.2.319 Dec 2025Release notes
Open source →- Bump
build_web_compilersto ^4.4.1. - Remove unused
clientFuturearg fromDwdsVmClientmethods. - Fix pausing starting of
mainafter the hot restart. - Updating bootstrapper for DDC library bundler module format + Frontend Server.
- Fix setting up breakpoints when handling in-app restarts with attached debugger.
- Fix issue where the web socket connections with the target application and Chrome debugger close when the computer sleeps.
- Fix setting up breakpoints when handling full reloads from attached debugger / page refreshes.
- Bump
-
26.2.207 Nov 2025Release notes
Open source →- Fix issue where isolate pause events were not reported correctly when using the web socket proxy service.
-
26.2.105 Nov 2025Release notes
Open source →- Add support for DDS APIs and serving Dart DevTools when no Chrome Debugger is available.
-
26.2.020 Oct 2025Release notes
Open source →- Add support for more service APIs over websocket connections when no Chrome Debugger is available.
-
26.1.020 Oct 2025Release notes
Open source →reloadSourcesandhotRestartnow throw an RPC error withkServerErrorcode whenNoClientsAvailableExceptionis caught (no browser clients are connected), allowing tooling to detect and handle this scenario.pausenow does not send aPauseInterruptedevent inWebSocketProxyServiceas we didn't actually pause.
-
26.0.009 Oct 2025Release notes
Open source →- Bump SDK constraint to ^3.10.0
- Added 'scriptUri' parameter to compileExpressionToJs
- Fix an issue in
reloadSourceswhere aPauseInterruptedevent was sent. - #61560 - Expose
dtdUriviaDebugConnection.
-
25.1.029 Aug 2025Release notes
Open source →- Added
DartDevelopmentServiceConfigurationto allow for configuring DDS behavior. - Added support for serving DevTools via DDS. This will become the sole method of serving DevTools from DWDS in a future major release.
- Deprecated
spawnDds,ddsPort, anddevToolsLauncherproperties inDebugSettings. - Added
ddsConfigurationtoDebugSettings.
- Added
-
25.1.0+109 Oct 2025Nothing published for this version
-
25.1.0+222 Oct 2025Nothing published for this version
-
25.0.427 Aug 2025Release notes
Open source →Bug Fixes:
- Fix issue where
DebugService: Error serving requestsError: Unsupported operation: Cannot send Nullwould be spammed on the console.
- Fix issue where
-
25.0.325 Aug 2025Release notes
Open source →Bug Fixes:
- Fix issue in hot restart with the web socket where we didn't pass the reloaded sources path, resulting in a null assertion.
-
25.0.222 Aug 2025Release notes
Open source →Bug Fixes:
- Fix issue where DDS would fail to initialize if DWDS already had existing clients.
-
25.0.118 Aug 2025Release notes
Open source →Bug Fixes:
- Fix issue in hot restart where a hot restart with no changes followed by one
with changes, a
Futurewas completed again, resulting in a crash.
- Fix issue in hot restart where a hot restart with no changes followed by one
with changes, a
-
25.0.014 Aug 2025Release notes
Open source →- Implemented hot restart over websockets with multi window support.
- Fix refresh race condition bug by adding an isolate destruction grace period.
- Update a call to the
package:shelf_web_socketwebSocketHandler()function.
Breaking changes
- Remove deprecated parameter
injectDebuggingSupportCodefromDwds.start(). - Remove all deprecated fields, getters, and parameters related to the null safety compilation mode. Dart 3 only supports sound null safety.
- Rename
FrontendServerDdcLibraryBundleStrategy.hotReloadSourcesUritoreloadedSourcesUri. The file that theUripoints to should now be updated for both a hot restart and a hot reload.
-
24.4.129 Jul 2025Release notes
Open source →- Implemented a WebSocket-based communication protocol that provides essential developer tooling (hot reload, service extensions) when Chrome debugger access is unavailable. - #2605
- Added WebSocket-based hot reload and service extension support via new
WebSocketProxyServiceclass that implements VM service protocol over WebSockets. - Enhanced
DevHandlerwithuseWebSocketConnectionflag to toggle between Chrome-based and WebSocket-based communication protocols. - Fixed an issue where we didn't wait until all scripts were parsed before recomputing metadata on a hot reload.
-
24.4.005 Jul 2025Release notes
Open source →- Added support for breakpoint registering on a hot reload with the DDC library bundle format using PausePostRequests.
FrontendServerDdcLibraryBundleStrategy.hotReloadSourceUriis now expected to also provide the reloaded modules.
-
24.4.0+122 Aug 2025Nothing published for this version
-
24.4.0+227 Aug 2025Nothing published for this version
-
24.3.1116 Jun 2025Release notes
Open source →- Changed DWDS to always inject the client and added
useDwdsWebSocketConnectionflag to control communication protocol: when true uses socket-based implementation, when false uses Chrome-based communication protocol. - Added WebSocket-based hot reload support:
reloadSourcesinChromeProxyServiceandDevHandlernow handle hot reload requests and responses over WebSockets. - Refactored the injected client to use a reusable function for handling hot reload requests and responses over WebSockets.
- Added support for breakpoint registering on a hot restart with the DDC library bundle format using PausePostRequests.
- Changed DWDS to always inject the client and added
-
24.3.1007 Apr 2025Release notes
Open source →- Disabled breakpoints on changed files in a hot reload. They currently do not map to the correct locations or are broken, so disable them for now. - #60186
-
24.3.924 Mar 2025Release notes
Open source →- Renamed DWDS Injector parameter
enableDebuggingSupporttoinjectDebuggingSupportCodefor clearer intent.
- Renamed DWDS Injector parameter
-
24.3.821 Mar 2025Release notes
Open source →- Updated DWDS to include a boolean flag that enables debugging support only when set to true. #60289
-
24.3.711 Mar 2025Release notes
Open source →-
The registered extension
reassembleis now no longer called when callingreloadSources. Users should callreassembleusingcallServiceExtension. -
callServiceExtensionnow checks the runtime for the list of registered service extensions. It also now throws aRPCErrorwithRPCErrorKind.kMethodNotFoundwhen a service extension is not found instead of throwing a JS evaluation error.
-
-
24.3.604 Mar 2025Release notes
Open source →- Bump minimum sdk version to 3.7.0
- use 'compile js-dev' instead of directly invoking the ddc snapshot.
FrontendServerDdcLibraryBundleStrategynow takes ahotReloadSourcesUriparameter in order to fetch the file that contains the changed sources and libraries instead of assuming it exists in the globalwindow.
-
24.3.511 Feb 2025Release notes
Open source →- Allow clients to specify the
packageConfigPathinLoadStrategyclass and associated providers.
- Allow clients to specify the
-
24.3.431 Jan 2025 -
24.3.323 Jan 2025Release notes
Open source →- Added support for some debugging APIs with the DDC library bundle format. - #2563
- Update
DCMversion to1.26.0-1 - Add support for hot restart using the DDC library bundle format.
-
24.3.210 Jan 2025 -
24.3.110 Jan 2025 -
24.3.007 Jan 2025Release notes
Open source →- Update to be forward compatible with changes to
package:shelf_web_socket. - Added support for some debugging APIs with the DDC library bundle format. - #2537,#2544,#2548
- Fix issue where batched expression evals were failing if any subexpression failed. - #2551
- Expose a partial implementation of
FrontendServerDdcLibraryBundleStrategyProvider. - Update
package:vm_service_interfaceto '^2.0.1'.
- Update to be forward compatible with changes to
-
24.2.006 Dec 2024Release notes
Open source →- Consolidate
FrontendServerDdcStrategyProviderandFrontendServerRequireStrategyProviderunder a shared parent class. - #2517 - Remove
build_daemon_ddc_and_canary_evaluate_test. - 2512 - Replace deprecated JS code
this.__proto__withObject.getPrototypeOf(this). - #2500 - Migrate injected client code to
package:web. - #2491 - Deprecated MetadataProvider's, CompilerOptions', SdkConfiguration's & SdkLayout's soundNullSafety. - #2427
- Add load strategy and an unimplemented hot restart strategy for DDC library bundle format.
- Added
useModuleNameoption toMetadataProviderto determine whether or not to use the providednamein aModuleMetadata. Metadata provided by DDC when using the library bundle format does not provide a useful bundle name. - Migrate to
package:webv1.1.0. - Added support for some debugging APIs with the DDC library bundle format. - #2488, #2534
- Update
package:vm_serviceto '>=14.2.4 <16.0.0'. - Update
package:vm_service_interfaceto '2.0.1'.
- Consolidate
-
24.1.007 Aug 2024Release notes
Open source →- Fix bug where debugging clients are not aware of service extensions when connecting to a new web app. - #2388
- Respect the value of
pause_isolates_on_startduring page-refreshes. - #2431 - Fix issue where DAP clients wouldn't resume after a restart. - #2441
- Add implementation for the VM Service's
getFlagListAPI. - #2438 - Hide more variables from the local scope when debugging. These variables were synthetically added by the compiler to support late local variables and don't appear in the original source code. - #2445
- Spawn DDS in a separate process using
dart development-serviceinstead of launching frompackage:dds. - #2466 - Update package
web_socket_channel: '>=2.2.0 <4.0.0'. - Require Dart
^3.4 - Prepare to update
package:vm_service_interfaceconstraint to2.0.0.
-
24.0.023 Apr 2024Release notes
Open source →- Implement
setFlagwhen it is called withpause_isolates_on_start. - #2373 - Do not persist breakpoints across hot restarts or page reloads. - #2371
- If
pause_isolates_on_startistrue, wait forresumeto run the app'smainmethod. - #2378 - Fix bug where setting breakpoints in a project using macros would fail. - #2403
- Make stack trace calculation resilient against one frame throwing an error. - #2408
Breaking changes
- Rename
dart_library.jstoddc_module_loader.jsto match SDK naming changes. - #2360
- Implement
-
23.3.023 Jan 2024 -
23.2.017 Jan 2024 -
23.1.109 Jan 2024Release notes
Open source →- Loosen
package:vm_serviceconstraints to allow>=13.0.0 <15.0.0. - #2329
- Loosen
-
23.1.003 Jan 2024 -
23.0.027 Dec 2023Release notes
Open source →- Restructure
LoadStrategyto provide build settings. - #2270 - Add
FrontendServerLegacyStrategyProviderand update bootstrap generation logic forLegacyStrategy- #2285 - Tolerate failures to detect a Dart execution context. - #2286
- Fix a null cast error when debugging a
Classfrom VS Code. - #2303 - Update
package:vm_serviceconstraint to^14.0.0. - #2307 - Update
package:vm_service_interfaceconstraint to1.0.1. - #2307
- Restructure
-
23.0.0+124 Jan 2024Nothing published for this version
-
22.1.026 Oct 2023 -
22.1.0+128 Dec 2023Nothing published for this version
-
22.0.017 Oct 2023Release notes
Open source →- Update the interface for ChromeProxyService.getSourceReport to match the VM service. - #2235
- Update
package:vm_serviceconstraint to^12.0.0. - #2248
Breaking changes
-
21.0.008 Sep 2023Release notes
Open source →- Update Dart SDK constraint to
>=3.2.0-36.0.dev <4.0.0. - #2207
Breaking changes
- Update Dart SDK constraint to
-
21.0.0+128 Dec 2023Nothing published for this version
-
20.0.110 Aug 2023 -
20.0.010 Aug 2023Release notes
Open source →- Require clients to specify the
basePathonAssetReader. - #2160 - Update SDK constraint to
>=3.1.0-254.0.dev <4.0.0. - #2169 - Require min
build_web_compilersversion4.0.4- #2171 - Switch to using new debugging API from DDC to support new type system. - #2159
- Fix Flutter crash when calling
resumewhen app is not paused. - #2188 - Update file dependency to
7.0.0.
- Require clients to specify the
-
19.0.205 Jul 2023Release notes
Open source →- Fix Flutter crash due to potential null value in
setUpChromeConsoleListener. - #2162
- Fix Flutter crash due to potential null value in
-
19.0.2+110 Aug 2023Nothing published for this version
-
19.0.120 Jun 2023Release notes
Open source →- Do not show async frame errors on evaluation. - #2073
- Refactor code for presenting record instances. - #2074
- Display record types concisely. - #2070
- Display type objects concisely. - #2103
- Support using scope in
ChromeProxyService.evaluateInFrame. - #2122 - Check for new events more often in batched stream. - #2123
- Map Chrome error on
resumeto the same error returned by the Dart VM. - #2133 - VM service API methods throw type
RPCError, same as the Dart VM. - #2144
-
19.0.1+109 Aug 2023Nothing published for this version
-
19.0.004 Apr 2023