As part of the recent rollout of Dart 2.6, the Google engineers behind the language introduced
dart2native, an extension to the Dart compiler set that extends native compilation to the Linux, MacOS, and Windows desktop platforms.
This extension offers the ability to compile Dart programs to self-contained executables. These executables contain ahead-of-time compiled machine code. Because
dart2native extends native compilation support to traditional desktop OSes running Linux, MacOS, and Windows, it allows native applications to be built in Dart for these platforms.
Compiled with Dart’s AOT compiler, executables can run on machines without the Dart SDK installed. They also start running in a matter of milliseconds. Previously, native compilation to machine code was limited to the iOS and Android mobile platforms. Users had asked for AOT compilation for desktop OSes.
dart2native extension enables building and deploying of apps for the command line. These apps use libraries such as
dart.io for IO;
package:httpcode for networking, and
package:args for parsing arguments. The extension also is compatible with
dart:ffi, a mechanism for C language interoperability that was launched in preview in Dart 2.5. A new version is offered in Dart 2.6.
dart2native compiler also can be used for small services such as a back-end supporting a front-end app using the Flutter toolkit. But
dart2native does have some initial limitations, such as no cross-compilation support. The compiler supports creating machine code only for the OS it is running on, so would need to be run three times to create executables for MacOS, Linux, and Windows. Executables produced also cannot be signed.
Also featured in Dart 2.6 is a preview of static extension methods, a language feature that could solve an issue with introducing new functionality to existing types.
Where to download Dart 2.6 and
You can get Dart 2.6 and the
dart2native compiler by downloading the Dart SDK. Instructions for installing the SDK can be found at dart.dev.