Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/darwinframework/darwin
- Owner: DarwinFramework
- License: apache-2.0
- Archived: true
- Created: 2022-11-28T06:34:12.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-19T16:35:49.000Z (over 1 year ago)
- Last Synced: 2024-09-30T16:39:43.603Z (about 2 months ago)
- Topics: dart, darwin, framework, ioc
- Language: Dart
- Homepage:
- Size: 457 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
Darwin
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.