question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Introduce App first in README / Docs intro.

  • Promote the app = App() style, but then go on to demonstrate plain ASGI style example, and discuss design philosophy of “everything is just ASGI” , interoperable, eg. use TestClient with Channels.

Naming

  • WebSocketSession as just WebSocket? Rename session variable as websocket in docs?
  • Drop StaticFile, and just leave StaticFiles and FileResponse.
  • Module naming - should it be starlette.requests/starlette.responses instead of starlette.request/starlette.response? Would fit websockets and align better with documentation titles.
  • App should perhaps be Starlette instead. Less likely to be confused with plain ASGI App class examples, and mirrors eg. flask.Flask and sanic.Sanic.
  • Class based views instead as HTTPEndpoint and WebSocketEndpoint?
  • Zero-dependencies

Ensure that requests is only required if TestClient is used. Ensure that aiofiles is only required if FileResponse/StaticFiles is used. We could choose to push FileResponse into the starlette.staticfiles module, and only ever import aiofiles from there.

Features

See https://github.com/encode/starlette/milestone/1

  • URL Reversing
  • Cookies
  • Form support
  • Class based views
  • Exception handling
  • Middleware
  • StartUp / Shutdown events
  • Background tasks

Later

  • Server Sent Events
  • HTTP/2 (and server push)

Issue Analytics

  • State:open
  • Created 5 years ago
  • Reactions:15
  • Comments:20 (10 by maintainers)

github_iconTop GitHub Comments

9reactions
tomchristiecommented, Nov 8, 2018

a request that you keep the ability for Starlette to be utilized as a library toolset

Oh, absolutely! We’ll want the documentation to come from a “here’s how you use a Starlette app” first, and a “here’s the low level stuff” second, but it’s really important that Starlette remains both a framework and a toolkit.

At some point the datastructures ought to get some documentation. Also I’m planning on expanding out concurrency.py with context managers that let you use asyncio timeouts and branching in a more structured way. (ie. Take the lessons from trio, and apply the most important bits. Some of this sort of thing ought to start appearing in Python 3.8 too, but we’d probably like good support for it before that’s widespread.)

7reactions
tomchristiecommented, Nov 1, 2018

We have everything that I’d originally wanted for 1.0 support.

The only bit of API that’s giving me any pause on a 1.0 jump is the async bits of requests/websockets. eg. request parsing. Ideally we’d like to eventually be able to use fully sync views too, and still have all functionality available to us. Haven’t yet figured how that’d look for the request/websocket APIs.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Semantic Versioning 1.0.0
Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public...
Read more >
Software versioning - Wikipedia
Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software.
Read more >
Version 1.0 Release - The Force Engine ·
Version 1.0 Release. 19 Dec 2022. Logo. After 3 years of development, I am ready to announce the Version 1.0 Release of The...
Read more >
Version 1.0.0 or 1.0.1? | Apple Developer Forums
Our application was submitted to Apple as version 1.0.0 and approved for release. ... Since we never released 1.0.0 should we up version...
Read more >
Version 1.0 | jQuery API Documentation
Create a new jQuery object with elements added to the set of matched elements. Also in: Attributes | Manipulation > Class Attribute |...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found