Dart SDK: A Multi-Target Compiler Toolkit for Mobile, Desktop, and Web
The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
At a glance
- What is it?
- The dart-lang/sdk repository is the source for the Dart language SDK, including a JIT and AOT compiler for native targets, a JavaScript compiler, a WebAssembly compiler, a static analyzer, and the core libraries, all under a BSD-3-Clause license.
- Who is it for?
- The dart-lang/sdk repository is the right reference for developers who need to understand how Dart compiles to machine code or to WebAssembly, who are contributing to the language or tooling, or who are building tools on top of the analysis server. Application developers using Dart or Flutter do not need to clone this repository; they get the SDK through the Flutter toolchain or through the archive at dart.dev.
- Can I use it commercially?
- Yes. BSD-3-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Dart, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What the Dart SDK Repository Contains
The dart-lang/sdk repository is not a getting-started guide or a set of tutorials. It is the source code for the Dart SDK itself: the virtual machine, the compilers, the static analyzer, the formatter, the package manager (pub), the core libraries, and the development tools. The README identifies three audiences for this repository: developers building Dart applications (who are directed to dart.dev and pub.dev), people contributing to Dart (directed to CONTRIBUTING.md), and people who want to build the SDK from source (directed to docs/Building.md). The repository is not the primary distribution channel for the Dart SDK; stable SDK downloads are available at dart.dev, and the build process from source is documented as a separate path for contributors.
Three Compiler Paths: JIT, AOT, and Web
The README describes two compiler modes. Dart Native covers programs targeting devices: mobile, desktop, servers, and embedded. It includes a Dart VM with JIT compilation for development and an AOT compiler that produces native machine code for production. The JIT path enables hot reload during development. The AOT path removes the runtime overhead of the VM for deployed applications. Dart Web covers programs targeting browsers. It includes dartdevc for development-time compilation (faster rebuilds, readable output) and dart2js for production (optimized, minimized JavaScript). The README also names WebAssembly as an output target. The supported native architectures from the README are ARM, x64, and RISC-V; the README does not list a separate list of supported operating systems, though the repository targets mobile, desktop, and backend.
Getting the SDK vs. Building from Source
The README directs users to dart.dev for installation and points to the SDK archive at dart.dev for specific version downloads. Building from source is documented in docs/Building.md in the repository. The README does not reproduce those build steps, but it names the repository as the reference for them. The top-level repository entries include BUILD.gn and sdk_args.gni, which indicate the build system is GN (Google's meta-build system, also used by Chromium). The .gn file at the root and the third_party/ directory are typical of a Chromium-adjacent build setup, which is more involved than a standard npm or cargo build. The samples/ directory contains embedder and FFI examples that show how to embed the Dart VM or call into native code.
Hot Reload and Developer Tooling
The README names hot reload as a specific productivity feature: you make changes and see the result instantly in a running application without a full restart. This is a JIT-mode capability and is not available in AOT-compiled production builds. The README also names DevTools at dart.dev/tools/dart-devtools as the tool for diagnosing application issues. The repository contains pkg/ and sdk/ directories that hold the analysis server, formatter, and other tools shipped as part of the SDK. API reference documentation is published at api.dart.dev for the stable release and at api.dart.dev/beta and api.dart.dev/dev for pre-release channels. A development-branch build is published at api.dart.dev/be.
Where Dart Is the Wrong Choice
Dart is primarily designed for Flutter applications, and its cross-platform story is strongest in that context. Outside of Flutter, the server-side and command-line Dart ecosystem is smaller than Node.js or Go, with fewer third-party packages on pub.dev. The README does not describe any server-side deployment tooling beyond noting that Dart Native targets server workloads. For web applications where Flutter is not involved, dart2js output is functional but the tooling and ecosystem familiarity for frontend teams is lower than TypeScript. The Wasm compilation target is available but the README does not document its maturity or limitations relative to the JavaScript path. Any project using Dart outside the Flutter context should verify pub.dev package availability for their specific dependencies before committing to the language.
Dart Against Kotlin as a Multi-Platform Language
Both Dart and Kotlin target mobile and desktop from a single codebase. The practical difference lies in the compilation model and the UI framework coupling. Kotlin Multiplatform shares business logic across platforms but relies on native UI frameworks for each target. Dart with Flutter compiles the UI itself to a single rendering pipeline (Skia or Impeller), which produces pixel-identical output across platforms but requires learning Flutter's widget model. For Android development specifically, Kotlin is the officially supported language on Android and has first-class IDE support in Android Studio. Dart has no equivalent first-class status on Android outside of Flutter. The README does not address this distinction; it focuses on Dart's multi-platform AOT compilation capabilities without comparing them to Kotlin Multiplatform.
License, Roadmap, and Maintenance
The Dart SDK is licensed under BSD-3-Clause, which is permissive and imposes no copyleft requirements. The PATENT_GRANT file at the root grants a patent license from Google for use of the SDK. The last push to the repository was on 2026-09-26. There are no GitHub releases in this repository; SDK releases are distributed through the dart.dev download page and the SDK archive. The README links the roadmap to the combined Dart and Flutter roadmap on the Flutter wiki, which means Dart's priorities are set together with Flutter's. The repository includes a SECURITY.md for vulnerability reports. The docs/ directory holds contributor-facing documentation including the Building.md referenced in the README, and the benchmarks/ directory holds performance benchmarks used by the team.
Editorial conclusion
The dart-lang/sdk repository is the right reference for developers who need to understand how Dart compiles to machine code or to WebAssembly, who are contributing to the language or tooling, or who are building tools on top of the analysis server. Application developers using Dart or Flutter do not need to clone this repository; they get the SDK through the Flutter toolchain or through the archive at dart.dev. The README links future plans to the combined Dart and Flutter roadmap on the Flutter wiki, which means Dart's direction is tightly coupled to Flutter's. Before working from this source, consult docs/Building.md in the repository for machine preparation steps, since the build system uses Chromium's depot_tools and GN rather than a standard package manager.
Frequently asked questions
What is the Dart SDK used for?
The Dart SDK provides the compiler, VM, analyzer, formatter, and core libraries needed to build Dart applications. The README describes two main uses: Dart Native for programs targeting mobile, desktop, and server with JIT and AOT compilation, and Dart Web for programs targeting browsers with JavaScript and WebAssembly output.
How do I download the Dart SDK?
The README directs users to dart.dev for the stable release and to the SDK archive at dart.dev for specific versions. The dart-lang/sdk repository itself is the compiler source; building from source is documented in docs/Building.md and is intended for contributors, not typical SDK installation.
Does the Dart SDK support WebAssembly output?
Yes. The README lists WebAssembly as an output target for programs targeting the web, alongside the dartdevc development compiler and the dart2js production JavaScript compiler. The README does not document the maturity level or specific constraints of the Wasm path.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/dart-lang-sdk)