/awesome-dart

A curated list of awesome Dart frameworks, libraries, and software

Awesome Dart Awesome

A curated list of awesome Dart frameworks, libraries, and software. Items on the list are actively maintained, well documented, and popular in the Dart community. Inspired by the awesome lists.

Contributing

Please take a quick look at the contribution guidelines first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you to all contributors; you rock!

Contents


Client Web App Frameworks

  • AngularDart Community - Community-maintained AngularDart websites, packages, tools, and more!
  • Flutter - Flutter is a framework to build high-performance, cross-platform mobile apps, allowing applications to be written for Android, iOS and Web Apps.
  • MDL/Dart - Material Design Lite for Dart is a framework of components for web developers based on Google's Material Design philosophy.
  • OverReact - A library for building statically-typed React UI components.

Server Frameworks

  • Jaguar - A server framework built for speed, simplicity and extensibility.
  • Start - Sinatra inspired web framework to serve static files, handle dynamic requests, websockets and create JSON responses.
  • Shelf - Shelf makes it easy to create and compose web servers and parts of web servers.
    • There are many packages written for Shelf. By convention they start with shelf_.
  • Vane - Framework with built-in server runtime environment and middleware system.
  • Rikulo Stream - Lightweight web server with request routing, filtering, template engine, WebSocket, MVC design pattern, and file-based static resources.
  • Alfred - Minimal ExpressJS-inspired server with routing and middlware.
  • Dart Frog - A fast, minimalistic backend framework for Dart.

Web Frameworks

  • Jaspr - Jaspr is an modern web framework for building websites in Dart with support for both client-side and server-side rendering.

Other Frameworks

Cross-platform development

Game Development

  • Flame - A minimalist Flutter game engine.
  • StageXL - StageXL offers an easy to use and complete API (based on the Flash API) for impressive 2D content like games and other rich applications.
  • DartRocket - DartRocket is a HTML5 game framework written in Dart and which uses the StageXL rendering engine.
  • Pixi Dart - A port of the pixi.js rendering engine.
  • Ranger - A game engine centered around HTML5 Canvas and a scene graph.

Animation

  • Universal Tween Engine - A port of the original java Universal Tween Engine created by Aurelien Ribbon.
  • Spine Dart - An implementation of the Esoteric Software Spine runtime.

Template

  • mustache_template - A mustache template library that supports dart2js and dart2native.
  • jaded - Port of the excellent Jade view engine.
  • mason - Tools which allow developers to create and consume reusable templates called bricks.

Database

  • Postgres - A PostgreSQL database driver that uses the extended, binary protocol for more efficient and secure queries.
  • SQLJockey - MySQL connector.
  • PostgreSQL - PostgreSQL database driver.

Package Managers

  • Pub - Pub is used to manage packages.
  • Cloudsmith - A fully managed package management SaaS, with support for Dart, Flutter, and much more. [Free for Public/OSS] [$]

Utilities

  • Archive - A library to encode and decode various archive and compression formats.
  • built_collection - Immutable collections via the builder pattern.
  • built_value - Immutable value types, enum classes, and serialization.
  • Frappe - A functional reactive programming library for Dart. FrappĂ© extends the functionality of Dart's streams, and introduces new concepts like properties/signals.
  • Quiver - A set of utility libraries that makes using many libraries easier and more convenient, or adds additional functionality.
  • route_hierarchical - Route is a client routing library for Dart that helps make building single-page web apps.
  • Darq - A port of functional LINQ from the .NET library.
  • Basics - A Dart library containing convenient extension methods on basic Dart objects.

Dependency Injection

  • Angular DI - Dependency Injection framework by Angular.
  • Dependencies - A simple and modular dependency injection system which doesn't use mirrors.
  • package: inject - Compile-time dependency injection for Dart and Flutter

Parsers

  • html - A library for working with HTML documents. Previously known as html5lib.
  • markdown - Parse markdown into HTML on both the client and server.
  • PetitParser - PetitParser combines ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers to model grammars and parsers as objects that can be reconfigured dynamically.
  • XML - A lightweight library for parsing, traversing, querying and building XML documents.
  • xmlstream - A streaming event-based XML Parser.
  • YAML - A parser for YAML.
  • Dart Tags - The library for parsing ID3 tags, written in pure Dart.

Validation

  • Constrain - Provides a constraint based Validation library inspired by Java Bean Validation but leveraging the superior language capabilities of Dart.
  • validator.dart - String validation and sanitization for Dart.

ORM

  • Objectory - Objectory provides typed, checked environment to model, save and query data persisted on MongoDb.

Image

  • image - Provides server and web apps the ability to load, manipulate, and save images with various image file formats including PNG, JPEG, GIF, WebP, TIFF, TGA, PSD, PVR, and OpenEXR.

Testing

  • Guinness - A port of the Jasmine library.
  • test - Provides a standard way of writing and running tests in Dart.
  • spec - A streamlined testing framework for Dart & Flutter.

Unions

  • Freezed - Code generation for immutable classes that has a simple syntax/API without compromising on the features.

Crash monitoring

  • Sentry - Sentry provides self-hosted and cloud-based error monitoring that helps all software teams discover, triage, and prioritize errors in real-time.

Tools

  • DevTools - a suite of debugging and performance tools for Dart and Flutter.
  • dart2js - compiles Dart code to JavaScript.
  • js2dart - compiles Javascript code to Dart.
  • Stagehand - A project scaffolding generator, inspired by tools like Web Starter Kit and Yeoman.
  • Crossdart - Cross-referenced source code of the packages from Pub.
  • Crossdart Github Chrome Extension - Adds "Go to declaration" and "Find Usages" functionality to your Dart projects on Github (both in tree views and pull requests).
  • gulp-dart - A gulp plugin for compiling Dart code to JavaScript using dart2js.
  • dev_compiler - Dart to JavaScript compiler designed to create idiomatic, readable JavaScript output.
  • json2dart - Given a json, it generates the dart classes to parse and generate json with given structure.
  • webdev_proxy - A proxy wrapper around webdev which adds support for rerouting 404s to the index, allowing for HTML push-based routing while running locally.
  • Dart Code Metrics - Additional linter which reports code metrics, checks for anti-patterns and provides additional rules for Analyzer.
  • m2cgen - A CLI tool to transpile trained classic ML models into a native Dart code with zero dependencies.
  • Lakos - Visualize internal library dependencies in Graphviz and detect dependency cycles.

Multithreading

  • isolator - Isolator offer to you a simple way for creating two-component states with isolated part and frontend part of any kind - BLoC, MobX, ChangeNotifier and others

Tutorials

Community

IDEs, Editors, and Plugins

Everything Else

There are lots of awesome libraries being added to Pub all the time. If you can't find a library on this list that meets your needs, go ahead and search for it on Pub. And if you end up finding an awesome library, we would love a pull request with the info so that everyone else can discover it as well. Just make sure to read the contributing guidelines first.

License

CC0