Darwin discord discord gitbook melos

Darwin is your swiss army knife for creating service based applications in dart, using the inversion of control principle and a powerful annotation based code-generator.

Goals

  • 🪟 Clear and readable! with almost zero boilerplate and services.
  • 🔋 Batteries included! plus a variety of packages and integrations.
  • 🚄 We are speed! Fast startups and delayable code generation.
  • 🎨 Make it your own! Many extension points and configurations.

Have a look for yourself!

@RestController()
@Path("/api/cats")
class CatController {

  CatService service;
  CatController(this.service);

  @GET("{name}")
  Cat retrieveCat(@PathParam() String name) {
    return service.getNamedCat(name);
  }

  @POST()
  Cat saveCat(@Body() cat) => service.addCat(cat);

  @GET()
  List<Cat> retrieveAll() => service.getAllCats();

}

Getting Started

To create a new project, you can use our cli tool charles (install with dart pub global activate charles) or our Web Project Generator.

Have a look at our example project for sample code or our Getting Started Guide at our Gitbook Wiki.

Silent Code Generation

A neat point about darwins non-intrusive code generation is, that it has almost zero boilerplate and generally doesn't require importing or referencing generated source code, except for just a few cases. This allows you to keep on working on your code, without having to wait for the build runner to create your required files for every new service you create and plan to use. This also minimizes conflicts with other external generators and helps to prevent unexpected build runner crashes.

Libraries

darwin_sdk