Contents

Commonly used packages

This page lists some of the most popular and useful packages that Dart developers have published. To find more packages—and search core libraries as well—use the pub.dev site.

Commonly used packages fall into three groups:

General-purpose packages

#

Use these packages for a wide range of projects.

PackageDescriptionCommonly used APIs
archiveEncodes and decodes various archive and compression formats.Archive, ArchiveFile, TarEncoder, TarDecoder, ZipEncoder, ZipDecoder
charactersManipulates strings for user-perceived characters (Unicode grapheme clusters).String.characters, Characters, CharacterRange
cronet_httpProvides access to the Android Cronet HTTP client using the same interface as package:http.
cupertino_httpProvides access to Apple's Foundation URL Loading System using the same interface as package:http.
httpProvides set of high-level functions and classes to simplify consuming HTTP resources.delete(), get(), post(), read()
intlInternationalization and localization facilities, with support for plurals and genders, date and number formatting and parsing, and bidirectional text.Bidi, DateFormat, MicroMoney, TextDirection
json_serializableGenerates JSON manipulation code. To learn more, consult JSON Support.@JsonSerializable
loggingAdds message logging to your application.LoggerHandler, Level, LogRecord
mockitoMocks objects in tests. Helps when you write tests for dependency injection. Use with the test package.Answering, Expectation, Verification
pathManipulates different types of paths. To learn more, consult Unboxing Packages: path.absolute(), basename(), extension(), join(), normalize(), relative(), split()
quiverSimplifies using core Dart libraries. Some of the libraries where Quiver provides additional support include async, cache, collection, core, iterables, patterns, and testing.CountdownTimer (quiver.async); MapCache (quiver.cache); MultiMap, TreeSet (quiver.collection); EnumerateIterable (quiver.iterables); center(), compareIgnoreCase(), isWhiteSpace() (quiver.strings)
shelfProvides web server middleware for Dart. Shelf makes it easy to create and compose web servers, and parts of web servers.Cascade, Pipeline, Request, Response, Server
stack_traceParses, inspects, and manipulates stack traces that Dart produces. Also transforms stack traces into a more readable format than the native StackTrace implementation. To learn more, consult Unboxing Packages: stack_trace.Trace.current(), Trace.format(), Trace.from()
testStandardizes writing and running tests in Dart.expect(), group(), test()
yamlParses YAML markup.loadYaml(), loadYamlStream()

Packages that expand on Dart core libraries

#

Each of the following packages builds upon a core library, adding functionality and filling in missing features:

PackageDescriptionCommonly used APIs
asyncExpands on dart:async, adding utility classes to work with asynchronous computations. To learn more, consult Unboxing Packages: async part 1, part 2, and part 3.AsyncMemoizer, CancelableOperation, FutureGroup, LazyStream, Result, StreamCompleter, StreamGroup, StreamSplitter
collectionExpands on dart:collection, adding utility functions and classes to make working with collections easier. To learn more, consult Unboxing Packages: collection.Equality, CanonicalizedMap, MapKeySet, MapValueSet, PriorityQueue, QueueList
convertExpands on dart:convert, adding encoders and decoders for converting between different data representations. One of the data representations is percent encoding, also known as URL encoding.HexDecoder, PercentDecoder
ioContains two libraries, ansi and io, to simplify working with files, standard streams, and processes. Use the ansi library to customize terminal output. The io library has APIs for dealing with processes, stdin, and file duplication.copyPath(), isExecutable(), ExitCode, ProcessManager, sharedStdIn

Specialized packages

#

To find specialized packages such as packages for Flutter and web development, consult the following sections.

Flutter packages

#

To learn more about Flutter packages, consult Using packages in the Flutter documentation or search the pub.dev site for Flutter packages.

Web packages

#

To learn more about web packages, consult Web libraries and packages or search the pub.dev site for web packages.

Command-line and server packages

#

To learn more about CLI or server packages, See Command-line and server libraries and packages. Or use the pub.dev site to search for other packages.