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           Dart virtual machine
  dart2js        Dart-to-JavaScript 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. 0.1.2.0_r1234).

util/            Support files for dart_analyzer and pub.
