dartness_root 1.0.0 copy "dartness_root: ^1.0.0" to clipboard
dartness_root: ^1.0.0 copied to clipboard

Dartness root pubspec

Dartness

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 >=3.0.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.7.0

dev_dependencies:
  build_runner: ^2.2.0
  dartness_generator: ^0.7.0

2.Create the file in "src/app.dart" #

@Application(
  module: Module(
    metadata: ModuleMetadata(
      controllers: [],
      providers: [],
      exports: [],
      imports: [],
    ),
  ),
  options: DartnessApplicationOptions(
    port: int.fromEnvironment(
      'port',
      defaultValue: 8080,
    ),
  ),
)
class App {}

4.Generate the code #

$ dart run build_runner build

5.Modify "bin/main.dart" #

void main(List<String> args) async {
  await App().init();
}

6.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
      • 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