Skip to content

Main decisions

  1. Dependency resolving is async by default:
  2. framework was developed mostly for usage with async python applications;
  3. sync resolving is also possible, but it will fail in runtime in case of unresolved async dependencies;
  4. Container is global:
  5. it's needed for injections without wiring to work;
  6. this way most of the logic stays in providers;
  7. Focus on maximum compatibility with mypy:
  8. no need for # type: ignore
  9. no need for typing.cast