目录
Contents
keyboard_arrow_down keyboard_arrow_up本章列出了一些 Dart 开发者发布的非常流行的有用的 package。到 Pub 网站 发现更多 package 及 核心库。
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.
常用 package 分为以下三组:
Commonly used packages fall into three groups:
通用 package
General-purpose packages
以下 package 被广泛的应用于项目中。
The following packages are useful for a wide range of projects.
Package | Description | Commonly used APIs |
archive | Encodes and decodes various archive and compression formats. | Archive, ArchiveFile, TarEncoder, TarDecoder, ZipEncoder, ZipDecoder |
characters | String manipulation for user-perceived characters (Unicode grapheme clusters). | String.characters, Characters, CharacterRange |
http | A set of high-level functions and classes that make it easy to consume HTTP resources. | delete(), get(), post(), read() |
intl | Internationalization and localization facilities, with support for plurals and genders, date and number formatting and parsing, and bidirectional text. | Bidi, DateFormat, MicroMoney, TextDirection |
json_serializable | An easy-to-use code generation package. For more information, see JSON Support. | @JsonSerializable |
logging | A configurable mechanism for adding message logging to your application. | LoggerHandler, Level, LogRecord |
mockito | A popular framework for mocking objects in tests. Especially useful if you are writing tests for dependency injection. Used with the test package. | Answering, Expectation, Verification |
path | Common operations for manipulating different types of paths. For more information, see Unboxing Packages: path. | absolute(), basename(), extension(), join(), normalize(), relative(), split() |
quiver | Utilities that make using core Dart libraries more convenient. 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) |
shelf | 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_trace | Methods for parsing, inspecting, and manipulating stack traces produced by the underlying Dart implementation. Also provides functions to produce string representations of stack traces in a more readable format than the native StackTrace implementation. For more information, see Unboxing Packages: stack_trace. | Trace.current(), Trace.format(), Trace.from() |
test | A standard way of writing and running tests in Dart. | expect(), group(), test() |
yaml | A parser for YAML. | loadYaml(), loadYamlStream() |
在 Dart 核心库上的扩展 package
Packages that expand on Dart core libraries
以下 package 基于 核心库 构建,添加功能,并补全缺少的功能:
Each of the following packages builds upon a core library, adding functionality and filling in missing features:
Package | Description | Commonly used APIs |
async | Expands on dart:async, adding utility classes to work with asynchronous computations. For more information, see Unboxing Packages: async part 1, part 2, and part 3. | AsyncMemoizer, CancelableOperation, FutureGroup, LazyStream, Result, StreamCompleter, StreamGroup, StreamSplitter |
collection | Expands on dart:collection, adding utility functions and classes to make working with collections easier. For more information, see Unboxing Packages: collection. | Equality, CanonicalizedMap, MapKeySet, MapValueSet, PriorityQueue, QueueList |
convert | Expands 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 |
io | Contains 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 |
专业 package
Specialized packages
以下是一些查找更专业软件 package 的技巧,例如用于移动开发(Flutter)和 Web 开发的 package。
Here are some tips for finding packages that are more specialized, such as packages for mobile (Flutter) and web development.
Flutter packages
在 Flutter 网站,查看 package 的使用。或者使用 Pub 网站 查找 Flutter package。
See Using packages on the Flutter site. Or use the pub.dev site to search for Flutter packages.
Web packages
查看 Web 库和 package。或者使用 Pub 网站 查找用于 Web 的 package。
See Web libraries and packages. Or use the pub.dev site to search for web packages.
命令行和服务器 package
Command-line and server packages
查看 命令行和服务器的库和 package。或者使用 pub.dev 网站 查找用于其它应用的 package。
See Command-line and server libraries and packages. Or use the pub.dev site to search for other packages.