← Package directory
Available on winget

Install Dart SDK

A set of tools and libraries for the Dart programming language.

Install with winget
winget install --id Google.DartSDK
Upgrade
winget upgrade --id Google.DartSDK
Uninstall
winget uninstall --id Google.DartSDK

About Dart SDK

A set of tools and libraries for the Dart programming language.

What's new in 3.12.0

Released on: Unreleased Language Private named parameters Dart now supports private named parameters. Before 3.12, it was an error to have a named parameter that starts with an underscore: class Point { final int _x, _y; // Compile error in Dart 3.11. Point({required this._x, required this._y}); } This means that, before 3.12, initializing a private field from a named parameter required an explicit initializer list: class Point { final int _x, _y; Point({required int x, required int y}) : _x = x, _y = y; } All the initializer list is doing is removing the leading _. In Dart 3.12, the language does that for you. Now you can write: class Point { final int _x, _y; // Private fields. Point({required this._x, required this._y}); } This code behaves exactly like the previous example. The initialized fields are private, but the argument names written at the call site are public: void main() { print(Point(x: 1, y: 2)); } Libraries dart:core - The Dart VM's RegExp implementation now supports modifier spans and duplicate named capture groups. dart:js_interop - Breaking change in extension name of isA: isA is moved from JSAnyUtilityExtension to NullableObjectUtilExtension to support type-checking any Object?. isA<JSObject>() also now handles JS objects with no prototypes correctly and isA<JSAny>() does a non-trivial check to make sure the value is a JS value. See #56905 for more details. As JSAnyUtilityExtension is on JSAny? and NullableObjectUtilExtension is on the supertype Object?, this change is only breaking if users referred to the extension name directly, either through applyin...

Read release notes

Version history

Version Updated Notes
3.12.0 Unknown Released on: Unreleased Language Private named parameters Dart now supports private named parameters. Before 3.12, it was an error to have a named parameter that starts with an underscore: class Point { final int _x, _y;...
3.11.6 Unknown Release notes
3.11.5 Unknown Release notes
3.11.4 Unknown Release notes
3.11.3 Unknown Release notes
3.11.2 Unknown Release notes
3.11.1 Unknown Release notes
3.11.0 Unknown Released on: Unreleased Language There are no language changes in this release. Libraries dart:io - Added support for Unix domain sockets (AF_UNIX) on Windows. Support is restricted to the subset of features supported by...
3.10.9 Unknown Release notes
3.10.8 Unknown Release notes
3.10.7 Unknown Release notes
3.10.6 Unknown Release notes
3.10.5 Unknown Release notes
3.10.4 Unknown Release notes
3.10.3 Unknown Release notes
3.10.2 Unknown Release notes
3.10.1 Unknown Release notes
3.10.0 Unknown Released on: 2025-11-12 Language Dart 3.10 adds dot shorthands to the language. To use them, set your package's SDK constraint lower bound to 3.10 or greater (sdk: '^3.10.0'). Dart 3.10 also adjusts the inferred return t...
3.9.4 Unknown Release notes
3.9.3 Unknown Release notes