Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/darwinframework/darwin

🧰 Swiss army knife for creating service based applications in dart, using IoC and a powerful annotation based code generator.
https://github.com/darwinframework/darwin

dart darwin framework ioc

Last synced: about 2 months ago
JSON representation

🧰 Swiss army knife for creating service based applications in dart, using IoC and a powerful annotation based code generator.

Awesome Lists containing this project

README

        


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!
```dart
@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 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](https://darwin-starter.web.app/#/).

Have a look at [our example project](https://github.com/DarwinFramework/darwin_example)
for sample code or our [Getting Started Guide](https://helightdev.gitbook.io/darwin/core/getting-started)
at our [Gitbook Wiki](https://helightdev.gitbook.io/darwin/).

## 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.