Skip to content

dolamroth/starlette-web

 
 

Repository files navigation

starlette_web

starlette_web is a native-asynchronous web-framework, based on Starlette and inspired by Django and its ecosystem. It aims to provide most of the relevant features of Django in async-all-the-way setting.

Its priorities, from most important to least important, are as follows:

  • Providing a strict ecosystem - all parts of framework are aimed to work well together and follow same ideas. In a way, this goes against idea of mini-frameworks like Starlette, which favor a lot of contrib plug-ins, written by different authors. Developer must follow the conventions of the framework in most cases.
  • Robustness - starlette_web is written with anyio and aims to follow principles of structured concurrency.
  • Feature completeness - while the aim is not to cover all the Django ecosystem (especially, because a lot of it is legacy), many useful libraries are included.
  • Cross-platform support - most of the features are supported for both POSIX and Windows systems. However, a number of contrib modules aim specifically at certain OS, and obviously it's mostly Linux.
  • Speed - while framework is being used in multiple projects without speed issues, speed is not properly benchmarked. Probably, the framework is slower than all other async Python frameworks, though not by a large amount.

SQLAlchemy is used as framework's database toolkit and ORM.
Marshmallow is used for (de)serialization in API.
OpenAPI documentation (redoc) can be autogenerated with apispec contrib module.

The framework is not well suited for novice users. It assumes prior knowledge of Django and async development in Python.

The framework is in active development stage, so expect some breaking changes.

Installation, usage and supported features

Installation and deploy instructions are in docs/howto section.

For supported features, see docs/README.md section.

See tests for more examples of usage.

Code borrowing

starlette-web borrows/adopts a lot of code from other open-source Python libraries. List of libraries is given in the docs, with links to repositories and licences.

About

Asynchronous web framework, based on Starlette and inspired by Django

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.6%
  • Other 0.4%