google/dart-neats

neat dart packages.

508

stars

550

commits

Dart

primary language

Sep 1, 2026

updated

dart

README

Dart Neats

A collection of a small neat packages for dart.

Disclaimer: This is not an officially supported Google product.

This repository is meant as a playground where small neat packages are cultivated. If package grows too large and complex and needs a dedicated issue tracker it should be moved to a dedicated repository.

Each folder in this repository contains a neat pub package. This project aims to use a separate package whenever it makes sense to have an independent major version. This often means splitting functionality into separate packages, which can be reused independently.

PackageDescriptionVersionTest
acyclic_stepsAn explicit acyclic step dependency framework with concurrent evaluation and dependency injection.pub packageacyclic_steps
canonical_jsonEncoder and decoder for a canonical JSON format, useful when cryptographically hashing or signing JSON objects.pub packagecanonical_json
chunked_streamUtilities for working with chunked streams, such as byte streams which is often given as a stream of byte chunks with type Stream<List<int>>.pub packagechunked_stream
dartdoc_testUtilities for testing code snippets embedded in documentation comments.pub packagedartdoc_test
http_methodsList of all HTTP methods registered with IANA as list of strings, and metadata such as whether a method idempotent.pub packagehttp_methods
neat_cacheA neat cache abstraction for wrapping in-memory or redis caches.pub packageneat_cache
neat_periodic_taskAuxiliary classes for reliably running a periodic task in a long-running process such as web-server.pub packageneat_periodic_task
pemPEM encoding/decoding of textual keys following RFC 7468, supporting both lax/strict-mode, and certificates chains of concatenated PEM blocks.pub packagepem
retryUtility for wrapping an asynchronous function in automatic retry logic with exponential back-off, useful when making requests over network.pub packageretry
safe_url_checkCheck if an untrusted URL is broken, without allowing connections to a private IP address.pub packagesafe_url_check
sanitize_htmlFunction for sanitizing HTML to prevent XSS by restrict elements and attributes to a safe subset of allowed values.pub packagesanitize_html
slugidA URL-safe base64 encoding for UUIDv4 stripped of padding. Useful when embedding short random UUIDs in URLs.pub packageslugid
typed_sqlPackage for doing SQL with some type safety.pub packagetyped_sql
vendorUtility for vendoring packages into a project and rewriting import/export statements.pub packagevendor

Repository Management

Packages in this repository uses pub workspaces a single dart pub get will resolve dependencies for all of them. Configuration of Github Actions, issue templates, issue labels, etc is automated with scripts in tool/.

Contributing

We love patches and contributions, please refer to CONTRIBUTING.md for technicalities on CLA and community guidelines. As this project aims to build neat packages using other neat packages we might also accept proposals for new neat packages, though it's often easier to publish independently.

License

Unless stated otherwise contents in this repository is licensed under Apache License 2.0, see LICENSE.

Contributors

jonasfj

432 commits

isoos

44 commits

kevmoo

20 commits

walnutdust

10 commits

google/dart-neats

neat dart packages.

508

stars

550

commits

Dart

primary language

Sep 1, 2026

updated

dart

README

Dart Neats

A collection of a small neat packages for dart.

Disclaimer: This is not an officially supported Google product.

This repository is meant as a playground where small neat packages are cultivated. If package grows too large and complex and needs a dedicated issue tracker it should be moved to a dedicated repository.

Each folder in this repository contains a neat pub package. This project aims to use a separate package whenever it makes sense to have an independent major version. This often means splitting functionality into separate packages, which can be reused independently.

PackageDescriptionVersionTest
acyclic_stepsAn explicit acyclic step dependency framework with concurrent evaluation and dependency injection.pub packageacyclic_steps
canonical_jsonEncoder and decoder for a canonical JSON format, useful when cryptographically hashing or signing JSON objects.pub packagecanonical_json
chunked_streamUtilities for working with chunked streams, such as byte streams which is often given as a stream of byte chunks with type Stream<List<int>>.pub packagechunked_stream
dartdoc_testUtilities for testing code snippets embedded in documentation comments.pub packagedartdoc_test
http_methodsList of all HTTP methods registered with IANA as list of strings, and metadata such as whether a method idempotent.pub packagehttp_methods
neat_cacheA neat cache abstraction for wrapping in-memory or redis caches.pub packageneat_cache
neat_periodic_taskAuxiliary classes for reliably running a periodic task in a long-running process such as web-server.pub packageneat_periodic_task
pemPEM encoding/decoding of textual keys following RFC 7468, supporting both lax/strict-mode, and certificates chains of concatenated PEM blocks.pub packagepem
retryUtility for wrapping an asynchronous function in automatic retry logic with exponential back-off, useful when making requests over network.pub packageretry
safe_url_checkCheck if an untrusted URL is broken, without allowing connections to a private IP address.pub packagesafe_url_check
sanitize_htmlFunction for sanitizing HTML to prevent XSS by restrict elements and attributes to a safe subset of allowed values.pub packagesanitize_html
slugidA URL-safe base64 encoding for UUIDv4 stripped of padding. Useful when embedding short random UUIDs in URLs.pub packageslugid
typed_sqlPackage for doing SQL with some type safety.pub packagetyped_sql
vendorUtility for vendoring packages into a project and rewriting import/export statements.pub packagevendor

Repository Management

Packages in this repository uses pub workspaces a single dart pub get will resolve dependencies for all of them. Configuration of Github Actions, issue templates, issue labels, etc is automated with scripts in tool/.

Contributing

We love patches and contributions, please refer to CONTRIBUTING.md for technicalities on CLA and community guidelines. As this project aims to build neat packages using other neat packages we might also accept proposals for new neat packages, though it's often easier to publish independently.

License

Unless stated otherwise contents in this repository is licensed under Apache License 2.0, see LICENSE.

Contributors

jonasfj

432 commits

isoos

44 commits

kevmoo

20 commits

walnutdust

10 commits

Languages

Dart

99.4%