Skip to content

Commit 0413124

Browse files
authored
Merge pull request #734 from python-discord/cj9-frameworks-reorder
Rework and reorder CJ9 framework descriptions
2 parents f549c2d + b612cfd commit 0413124

File tree

1 file changed

+41
-30
lines changed

1 file changed

+41
-30
lines changed

pydis_site/templates/events/pages/code-jams/9/frameworks.html

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -16,86 +16,97 @@
1616
Please work with your team to choose a library that everyone can and want to develop with.
1717
If there is a library not listed below that you think should be here, you're welcome to discuss it with the Events Team over at <a href="https://discord.gg/HnGd3znxhJ">the server</a>.
1818
</p>
19+
20+
<div class="notification is-info is-light">
21+
<p>Most of the below frameworks implement what is called the ASGI Specification.
22+
This specification documents how the frameworks should interact with ASGI servers.
23+
You are also allowed to <strong>work with the ASGI specification directly</strong> without a framework, if your team so chooses to.
24+
Refer to the <a href="https://asgi.readthedocs.io/en/latest/">specification online</a>.
25+
</p>
26+
</div>
27+
28+
<h3 id="approved-frameworks"><a href="#approved-frameworks">Approved Frameworks</a></h3>
29+
1930
<div class="card mb-4">
2031
<div class="card-content">
2132
<div class="content">
22-
<p class="subtitle">websockets</p>
23-
<p class="is-italic">websockets is a library for building WebSocket servers and clients in Python with a focus on correctness, simplicity, robustness, and performance.
24-
Built on top of asyncio, Python’s standard asynchronous I/O framework, it provides an elegant coroutine-based API.
25-
</p>
33+
<p class="subtitle">FastAPI</p>
34+
<p>FastAPI is a modern web framework great for WebSockets based on standard Python type hints which provides great editor support.</p>
2635
</div>
2736
</div>
2837
<div class="card-footer">
29-
<a href="https://websockets.readthedocs.io/en/stable" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
30-
<a href="https://github.com/aaugustin/websockets" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
38+
<a href="https://fastapi.tiangolo.com/advanced/websockets" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
39+
<a href="https://github.com/tiangolo/fastapi" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
3140
</div>
3241
</div>
42+
3343
<div class="card mb-4">
3444
<div class="card-content">
3545
<div class="content">
36-
<p class="subtitle">Flask-SocketIO</p>
37-
<p class="is-italic">Flask-SocketIO gives Flask applications access to low latency bi-directional communications between the clients and the server.
46+
<p class="subtitle">Starlette</p>
47+
<p>Starlette is a lightweight ASGI framework/toolkit, which is ideal for building async web services in Python.
3848
</p>
3949
</div>
4050
</div>
4151
<div class="card-footer">
42-
<a href="https://flask-socketio.readthedocs.io/en/latest" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
43-
<a href="https://github.com/miguelgrinberg/flask-socketio" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
52+
<a href="https://www.starlette.io/websockets" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
53+
<a href="https://github.com/encode/starlette" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
4454
</div>
4555
</div>
56+
4657
<div class="card mb-4">
4758
<div class="card-content">
4859
<div class="content">
49-
<p class="subtitle">Django Channels</p>
50-
<p class="is-italic">Channels is a project that takes Django and extends its abilities beyond HTTP - to handle WebSockets, chat protocols, IoT protocols, and more.
51-
It’s built on a Python specification called ASGI.
60+
<p class="subtitle">websockets</p>
61+
<p>websockets is a library for building both WebSocket clients and servers with focus on simplicity and performance.
5262
</p>
5363
</div>
5464
</div>
5565
<div class="card-footer">
56-
<a href="https://channels.readthedocs.io/en/stable" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
57-
<a href="https://github.com/django/channels" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
66+
<a href="https://websockets.readthedocs.io/en/stable" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
67+
<a href="https://github.com/aaugustin/websockets" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
5868
</div>
5969
</div>
70+
6071
<div class="card mb-4">
6172
<div class="card-content">
6273
<div class="content">
63-
<p class="subtitle">wsproto</p>
64-
<p class="is-italic">wsproto is a WebSocket protocol stack written to be as flexible as possible.
65-
To that end it is written in pure Python and performs no I/O of its own.
66-
Instead it relies on the user to provide a bridge between it and whichever I/O mechanism is in use, allowing it to be used in single-threaded, multi-threaded or event-driven code.
74+
<p class="subtitle">Django Channels</p>
75+
<p>Django Channels adds WebSocket-support to Django - built on ASGI like other web frameworks.
6776
</p>
6877
</div>
6978
</div>
7079
<div class="card-footer">
71-
<a href="https://python-hyper.org/projects/wsproto/en/stable" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
72-
<a href="https://github.com/python-hyper/wsproto" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
80+
<a href="https://channels.readthedocs.io/en/stable" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
81+
<a href="https://github.com/django/channels" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
7382
</div>
7483
</div>
84+
7585
<div class="card mb-4">
7686
<div class="card-content">
7787
<div class="content">
78-
<p class="subtitle">Starlette</p>
79-
<p class="is-italic">Starlette is a lightweight ASGI framework/toolkit, which is ideal for building async web services in Python.
88+
<p class="subtitle">Flask-SocketIO</p>
89+
<p>Flask-SocketIO gives Flask applications access to low latency bi-directional communications between the clients and the server.
8090
</p>
8191
</div>
8292
</div>
8393
<div class="card-footer">
84-
<a href="https://www.starlette.io/websockets" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
85-
<a href="https://github.com/encode/starlette" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
94+
<a href="https://flask-socketio.readthedocs.io/en/latest" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
95+
<a href="https://github.com/miguelgrinberg/flask-socketio" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
8696
</div>
8797
</div>
88-
<div class="card mb">
98+
99+
<div class="card mb-4">
89100
<div class="card-content">
90101
<div class="content">
91-
<p class="subtitle">FastAPI</p>
92-
<p class="is-italic">FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.
102+
<p class="subtitle">wsproto</p>
103+
<p>wsproto is a pure-Python WebSocket protocol stack written to be as flexible as possible by having the user build the bridge to the I/O.
93104
</p>
94105
</div>
95106
</div>
96107
<div class="card-footer">
97-
<a href="https://fastapi.tiangolo.com/advanced/websockets" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
98-
<a href="https://github.com/tiangolo/fastapi" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
108+
<a href="https://python-hyper.org/projects/wsproto/en/stable" class="card-footer-item"><i class="fas fa-book"></i>&ensp;Documentation</a>
109+
<a href="https://github.com/python-hyper/wsproto" class="card-footer-item"><i class="fab fa-github"></i>&ensp;GitHub</a>
99110
</div>
100111
</div>
101112

0 commit comments

Comments
 (0)