10 Open-source Dart Web server Frameworks
What is Dart?
Dart is an open-source general purpose programming language that can be used to produce stable, fast, apps for desktop, mobile and web.
While it is around for years, it was only popular when it is used as the core for Flutter, the ever-growing framework for building mobile and desktop applications.
But that's not all, Dart also has a successful growing web framework, which may not be popular as Flutter.
In this article, we will provide a quick preview about some of Dart web and server frameworks, which developers can use to build extensible, large, efficient web apps.
1- Conduit
Conduct is a free, open-source web framework for building web and server apps. It comes with built-in batteries for all what is required to create a large enterprise-grade apps.
Conduit features include
- Seamless smooth Dart HTTP server framework
- Routing
- Built-in Statically-typed ORM
- Database migration option (similar to the Django)
- Built-in OAuth 2.0 server and security model
- Built-in integrated testing library
Conduit is released under the BSD-2-Clause License. We highly recommend it for building headless REST-full apps.
2- Aqueduct
Aqueduct is a popular object-oriented, multi-threaded HTTP server framework written in the Dart language.
Aqueduct features
- Multi-threaded: leverages every CPU seamlessly
- Highly configurable routing
- Built-in OAuth 2.0 server middleware
- Productive Request Bindings
- Comes with a strong integrated testing library
- Built-in support for OpenAPI 3 integration
3- Lucifer
Lucifer is a minimal open-source Dart web framework that is inspired by Express.js (Node.js), and Flask (Python). It comes with Lucy, a command-line tool for creating, development, running the app and testing the code.
4- Jaguar
Jaguar is a full-stack web server MVC framework wit dart for building complex apps. It focuses on security, ORM, data serialization.
5- Stream
Stream is a Lightweight Dart web server. It is released and licensed under the Apache 2.0 License.
Stream features
- Request routing
- Routing Filtering
- A built-in strong template engine
- Full WebSocket support
- MVC design pattern
- File-based static resources.
6- Alfred
Alfred is yet another open-source server REST-API framework with dart that is inspired by Express.js.
Alfred is sticking close to dart core libraries - easy to maintain!
Alfred features
- Advanced routing management
- Supports file uploading
- Routing middleware
- CORS support
- Error management
- Supports multiple database engines
- Supports Websocket out-of-box
- Built-in logging system
- Multi threading & isolates
- Custom response types
7- Start
Start is a Sinatra framework inspired web development framework for Dart.
It supports custom responses and requests, advanced routes, web socket routes, and several other useful features.
It does not come with an ORM module, Auth library, or a template engine, so it is recommended for creating REST-API server apps.
8- Vane
Vane is a server side framework written and optimized for the Dart programming language.
Vane comes bundled with a lightweight and performant middleware system and strives to provide commonly used parameters and objects in an easy-to-use manner such as query parameters or JSON body data.
9- Angle
Angle is a free open-source full-stack server framework that comes full packed with dozens of useful features to build secure, large and scalable apps.
Angle features
- Full client-side support
- GraphQL support
- A built-in Authentication library
- Seamless app configuration
- A rich strong validation library
- PostgreSQL ORM
- MongoDB (NoSQL) support
- Comes with an advanced strong templating engine
10- Shelf
Shelf is not an actually a server framework, it is a web server middleware for dart which can be used with other frameworks or independently for building web server apps.
Shelf actually is inspired by Rack library (Ruby), and the Connect middleware framework for Node.Js.
How does Shelf work?
- Expose a small set of simple types.
- Map server logic into a simple function: a single argument for the request, the response is the return value.
- Trivially mix and match synchronous and asynchronous processing.
- Flexibility to return a simple string or a byte stream with the same model.
Wrapping up
As Dart is growing its community among developers and enterprises, using Flutter as a spearhead, its server frameworks are growing as well. However, it is early to predict which framework will reveal in the next two years.