Dart's core libraries
Dart has a rich set of core libraries that provide essentials for many everyday
programming tasks such as
working on collections of objects (dart:collection
),
making calculations (dart:math
),
and encoding/decoding data (dart:convert
).
Additional APIs are available in
commonly used packages.
Library tour
#The following guides cover how to use major features of Dart's core libraries. They provide just an overview, and are by no means comprehensive. Whenever you need more details about a library or its members, consult the Dart API reference.
- dart:core
-
Built-in types, collections, and other core functionality. This library is automatically imported into every Dart program.
- dart:async
Support for asynchronous programming, with classes such as Future and Stream.
- dart:math
Mathematical constants and functions, plus a random number generator.
- dart:convert
-
Encoders and decoders for converting between different data representations, including JSON and UTF-8.
- dart:io
-
I/O for programs that can use the Dart VM, including Flutter apps, servers, and command-line scripts.
- dart:js_interop
-
APIs for interop with the web platform. Along with
package:web
,dart:js_interop
replacesdart:html
.
As mentioned, these pages are just an overview; they cover only a few dart:* libraries and no third-party libraries.
For an overview of all libraries that Dart supports on different platforms, check out the Multi-platform libraries, Native platform libraries, and Web platform libraries lists below.
Other places to find library information are the pub.dev site and the Dart web developer library guide. You can find API documentation for all dart:* libraries in the Dart API reference or, if you're using Flutter, the Flutter API reference.
To learn more about the Dart language, check out the language documentation and samples.
Multi-platform libraries
#The following table lists the Dart core libraries that work on all Dart platforms.
Library | Notes |
---|---|
dart:core
Built-in types, collections, and other core functionality for every Dart program. |
|
dart:async
,
package:async
Support for asynchronous programming, with classes such as Future
and
Stream
.
package:async
provides additional utilities around the
Future
and
Stream
types.
|
|
dart:collection
,
package:collection
Classes and utilities that supplement the collection support in dart:core
.
package:collection
provides further collection implementations and functions for working on and with collections.
|
|
dart:convert
,
package:convert
Encoders and decoders for converting between different data representations, including JSON and UTF-8. package:convert
provides additional encoders and decoders.
|
|
dart:developer
Interaction with developer tools such as the debugger and inspector. |
Native JIT and the development JavaScript compiler only |
dart:math
Mathematical constants and functions, plus a random number generator. |
|
dart:typed_data
,
package:typed_data
Lists that efficiently handle fixed sized data (for example, unsigned 8-byte integers) and SIMD numeric types. package:typed_data
provides further classes and functions working on typed data.
|
Native platform libraries
#The following table lists the Dart core libraries that work on the Dart native platform (AOT- and JIT-compiled code).
Library | Notes |
---|---|
dart:ffi
,
package:ffi
A foreign function interface that lets Dart code use native C APIs. package:ffi
contains utilities incl. support for converting Dart strings and C strings.
|
|
dart:io
,
package:io
File, socket, HTTP, and other I/O support for non-web applications. package:io
provides functionality including support for ANSI colors, file copying, and standard exit codes.
|
|
dart:isolate
Concurrent programming using isolates: independent workers similar to threads. |
|
dart:mirrors
Basic reflection with support for introspection and dynamic invocation. |
Experimental Native JIT only (not Flutter) |
Web platform libraries
#The following table lists the Dart core libraries that work on the Dart web platform (code compiled to JavaScript). The latest, recommended tools are bolded, and legacy tools are italicized (visit Javascript interoperability for more information).
Library | Notes |
---|---|
package:web
Lightweight browser API bindings built around JS interop |
Replaces all
dart:*
web libraries. Read the
migration guide
.
|
dart:js_interop
Interop with JavaScript and browser APIs. |
Replaces package:js . |
dart:js_interop_unsafe
Utility methods to manipulate JavaScript objects dynamically. |
Replaces dart:js_util . |
dart:html
(legacy)
HTML elements and other resources for web-based applications. |
Use package:web instead. |
dart:indexed_db
(legacy)
Client-side key-value store with support for indexes. |
Use package:web instead. |
dart:js
,
dart:js_util
,
package:js
(legacy)
Low-level primitives and higher-level annotations for JS interop. |
Use dart:js_interop or dart:js_interop_unsafe instead. |
dart:svg
(legacy)
Scalable Vector Graphics. |
Use package:web instead. |
dart:web_audio
(legacy)
High-fidelity audio programming in the browser. |
Use package:web instead. |
dart:web_gl
(legacy)
3D programming in the browser. |
Use package:web instead. |
Unless stated otherwise, the documentation on this site reflects Dart 3.9.2. Page last updated on 2025-8-7. View source or report an issue.