The Dart SDK is a set of tools and libraries for the Dart programming language.

You can find information about Dart online at dartlang.org.

Here's a brief guide to what's in here:

bin/             Binaries/scripts to compile, run, and manage Dart applications.
  dart           Main Dart command-line executable
  dart2js        Dart-to-JavaScript compiler
  dart2native    Dart-to-native AOT compiler
  dartanalyzer   Dart static analyzer
  dartdoc        Dart documentation generator
  pub            Pub, the Dart package manager

lib/             Libraries that are shipped with the Dart runtime. More
                 information is available at api.dartlang.org.

packages/        Additional packages that are shipped outside of the Dart
                 runtime. More information is available at api.dartlang.org.

version          The version number of the SDK (ex. 1.5.1).

revision         The Subversion revision of the SDK build (ex. 37107).
