Introduction

Dartness is a dart framework for building efficient and scalable server-side applications.

Description

Dartness is a framework for building efficient, scalable dart server-side applications. It provides an easy and quick way to develop modern standalone server.

Under the hood, Dartness makes use of shelf.

Inspired by Spring Boot and Nest frameworks

Goals

The following goals are the main objectives that Dartness needs to provide and why it was designed for:

  • ๐Ÿ›  Full stack integration with flutter or other dart front end frameworks
  • ๐Ÿคนโ€โ™€๏ธ๐Ÿคนโ€โ™‚๏ธ Easy and understandable for people coming from other kind of technology as Spring Boot and NestJS
  • โœ Simplicity, it should be easy to know why and how to use every functionality
  • ๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ‘ฉโ€๐Ÿ’ป Community empowered, where the community should be able to understand and maintain the dartness project by their own

Examples

You can find different examples if you prefer to understand the code by yourself in the /examples folder.

Requisites

Install Dart SDK version >=2.17.0

$ dart --version            
Dart SDK version: 3.0.0 (stable)

Docs and more

You can check the documentation at dartness docs

Creating a new project

$ dart create -t console your_project_name
  1. Add dartness into the pubspec.yaml
dependencies:
  dartness_server: ^0.6.1

dev_dependencies:
  build_runner: ^2.2.0
  dartness_generator: ^0.6.1
  1. Create the file in "bin/main.dart"
void main() async {
  final app = Dartness(
    port: 3000,
  );
  await app.create();
}

  1. Run the server
$ dart run bin/main.dart
Server listening on port 3000

Example

You can run the example with the Dart SDK like this:

$ dart run example/main.dart
Server listening on port 3000

TODO

  1. HTTP
    • Controllers
      • Bind annotations
      • Header
      • Headers
      • Body
      • Param
      • Query
    • Middleware
    • Interceptor
    • Websockets
  2. Exceptions
    • Exception Handler
  3. Security
    • Roles
    • CORS
  4. Dependency Injection
    • Injectable
  5. Scheduling
    • Annotation
  6. Database
    • ORM
    • Repository
  7. Testing
  8. CLI

Libraries

dartness
The core libraries of the Dartness framework.
exception
Library that exposes the API for the exceptions
modules
The modules libraries of the Dartness framework.
route
Library that exposes the API for the route
schedule
Library that exposes the API for the server
server
Library that exposes the API for the server