
# مختبر أبحاث أمنية مُصرّح به: إعادة إنتاج CVE-2024-42370 / GHSA-4hq2-rpgc-r8r7 (حقن متغيرات البيئة في docs-preview.yml) — لقطة من litestar-org/litestar@18d84d84
أداة بحث آلية — ليست المشروع الأصلي (upstream).
هذا المستودع هو مختبر مؤقت تم بناؤه بواسطة نظام آلي لأطروحة ماجستير في جامعة لافال (Université Laval) حول إعادة إنتاج ثغرات سير عمل GitHub Actions المنشورة. وهو لقطة حرفية من
litestar-org/litestarعند الالتزام (commit)18d84d846b782ccaab06f550a4defce22b3082e8(2024-07-27)، ويُعاد توزيعه بموجب ترخيص ذلك المشروع نفسه، الذي تم تضمين ملفه دون تغيير في هذه اللقطة.المشروع الأصلي ليس مشاركًا، ولا يُستهدف أبدًا، والثغرة التي تمت دراستها هنا عامة بالفعل. كل سر ومتغير في هذا المستودع هو قيمة وهمية مولّدة عشوائيًا — لا توجد أي بيانات اعتماد حقيقية. مراجع الإجراءات (Actions) وصور العدّائين (runners) مثبتة على ما تم حله في 2024-07-27؛ راجع
pinning.mdفي مخرجات النظام الآلي لمعرفة كل تغيير تم إجراؤه على اللقطة.الأسئلة أو الاعتراضات: [email protected]
| Project | Status |
|---|
| CI/CD | ||
| Quality | ||
| Package | ||
| Community | ||
| Meta |
Litestar هو إطار عمل ASGI قوي ومرن ولكنه صارم في آرائه، يركز على بناء واجهات برمجة التطبيقات (APIs)، ويقدم تحققًا وتحليلًا عالي الأداء للبيانات، وحقن التبعيات (dependency injection)، وتكاملًا من الدرجة الأولى مع ORM، وأساسيات التفويض (authorization)، والكثير غير ذلك مما يلزم لتشغيل التطبيقات.
اطّلع على الوثائق 📚 للحصول على نظرة عامة مفصلة عن ميزاته!
بالإضافة إلى ذلك، يمكن أن يمنحك مستودع Litestar الكامل (fullstack) انطباعًا جيدًا عن الشكل الذي قد يبدو عليه تطبيق Litestar مكتمل المواصفات.
pip install litestar
## بدء سريع```python
from litestar import Litestar, get
@get("/")
def hello_world() -> dict[str, str]:
"""Keeping the tradition alive with hello world."""
return {"hello": "world"}
app = Litestar(route_handlers=[hello_world])
dataclasses وTypedDict والإصدار 1 والإصدار 2 من pydantic وmsgspec وattrsLitestar مشروع مفتوح المصدر، ونستمتع بدعم رعاتنا للمساعدة في تمويل العمل المثير الذي نقوم به.
شكر كبير لرعاتنا:
إذا كنت ترغب في دعم العمل الذي نقوم به، فيُرجى التفكير في أن تصبح راعيًا عبر Polar.sh (المُفضّل)، أو GitHub أو Open Collective.
أيضًا، حصريًا مع Polar، يمكنك المشاركة في رعايات قائمة على التعهدات.
بينما يدعم Litestar معالجات المسارات القائمة على الدوال، فإنه يدعم أيضًا ويعزز البرمجة الكائنية في بايثون باستخدام وحدات تحكم قائمة على الفئات:
from litestar import Controller, get, post, put, patch, delete from litestar.dto import DTOData from pydantic import UUID4
from my_app.models import User, PartialUserDTO
class UserController(Controller): path = "/users"
@post()
async def create_user(self, data: User) -> User: ...
@get()
async def list_users(self) -> List[User]: ...
@get(path="/{date:int}")
async def list_new_users(self, date: datetime) -> List[User]: ...
@patch(path="/{user_id:uuid}", dto=PartialUserDTO)
async def partial_update_user(
self, user_id: UUID4, data: DTOData[PartialUserDTO]
) -> User: ...
@put(path="/{user_id:uuid}")
async def update_user(self, user_id: UUID4, data: User) -> User: ...
@get(path="/{user_name:str}")
async def get_user_by_name(self, user_name: str) -> Optional[User]: ...
@get(path="/{user_id:uuid}")
async def get_user(self, user_id: UUID4) -> User: ...
@delete(path="/{user_id:uuid}")
async def delete_user(self, user_id: UUID4) -> None: ...
</details>
### تحليل البيانات، تلميحات الأنواع، و Msgspec
ليتستار مُنمّط بدقة، ويفرض التنسيق النمطي. على سبيل المثال، إذا نسيت تحديد نوع القيمة المرجعة لمعالج مسار،
فسيتم رفع استثناء. السبب في ذلك هو أن ليتستار يستخدم بيانات التنسيق النمطي لتوليد مواصفات OpenAPI،
بالإضافة إلى التحقق من البيانات وتحليلها. وبالتالي، فإن التنسيق النمطي أمر أساسي للإطار.
علاوة على ذلك، يسمح ليتستار بتوسيع دعمه باستخدام الإضافات.
### نظام الإضافات، دعم ORM، و DTOs
يمتلك ليتستار نظام إضافات يسمح للمستخدم بتوسيع التسلسل/إلغاء التسلسل، وتوليد OpenAPI، وغيرها من
الميزات.
يأتي مع إضافة مدمجة لـ SQL Alchemy، والتي تسمح للمستخدم باستخدام فئات SQLAlchemy التصريحية "بشكل أصلي"
أي كمعاملات أنواع سيتم تسلسلها/إلغاء تسلسلها وإرجاعها كقيم من معالجات
المسارات.
يدعم ليتستار أيضًا الإنشاء البرمجي لـ DTOs باستخدام فئة `DTOFactory`، والتي تدعم أيضًا استخدام
الإضافات.
### OpenAPI
يمتلك ليتستار منطقًا مخصصًا لتوليد مخطط OpenAPI 3.1.0، بما في ذلك التوليد الاختياري للأمثلة باستخدام
مكتبة [`polyfactory`](https://pypi.org/project/polyfactory/).
#### توثيق API الخاص بـ ReDoc و Swagger-UI و Stoplight Elements
يقدم ليتستار التوثيق من مخطط OpenAPI المُولّد باستخدام:
- [ReDoc](https://redoc.ly/)
- [Swagger-UI](https://swagger.io/tools/swagger-ui/)
- [Stoplight Elements](https://github.com/stoplightio/elements)
- [RapiDoc](https://rapidocweb.com/)
كل هذه الأدوات متاحة ومفعّلة افتراضيًا.
### حقن التبعيات
يمتلك ليتستار نظام حقن تبعيات بسيط لكنه قوي مستوحى من pytest. يمكنك تعريف تبعيات مسماة - متزامنة أو غير متزامنة - على
مستويات مختلفة من التطبيق، ثم استخدامها أو الكتابة فوقها بشكل انتقائي.
<details>
<summary>مثال على حقن التبعيات</summary>```python
from litestar import Litestar, get
from litestar.di import Provide
async def my_dependency() -> str: ...
@get("/")
async def index(injected: str) -> str:
return injected
app = Litestar([index], dependencies={"injected": Provide(my_dependency)})
يدعم Litestar وسيط ASGI النموذجي ويأتي مزودًا بوسائط للتعامل مع أمور مثل
يمتلك Litestar آلية تفويض تُسمى guards، والتي تتيح للمستخدم تعريف دوال الحارس على مستويات مختلفة
من التطبيق (التطبيق، الموجّه، المتحكم، إلخ) والتحقق من الطلب قبل الوصول إلى دالة معالج المسار.
from litestar.connection import ASGIConnection from litestar.handlers.base import BaseRouteHandler from litestar.exceptions import NotAuthorizedException
async def is_authorized(connection: ASGIConnection, handler: BaseRouteHandler) -> None: # validate authorization # if not authorized, raise NotAuthorizedException raise NotAuthorizedException()
@get("/", guards=[is_authorized]) async def index() -> None: ...
app = Litestar([index])
</details>
### خطافات دورة حياة الطلب
يدعم Litestar خطافات دورة حياة الطلب، على غرار Flask - أي `before_request` و `after_request`
## الأداء
Litestar سريع. فهو على قدم المساواة مع، أو أسرع بشكل ملحوظ من، أطر ASGI المماثلة.
يمكنك الاطلاع على المعايير وتشغيلها [هنا](https://github.com/litestar-org/api-performance-tests)،
أو قراءة المزيد عنها [هنا](https://docs.litestar.dev/latest/benchmarks) في وثائقنا.
## المساهمة
Litestar مفتوح للمساهمات الكبيرة والصغيرة. يمكنك دائمًا [الانضمام إلى خادم الديسكورد الخاص بنا](https://discord.gg/X3FJqy8d2j)
أو [الانضمام إلى مساحة Matrix الخاصة بنا](https://matrix.to/#/#litestar:matrix.org)
لمناقشة المساهمات وصيانة المشروع. للإرشادات حول كيفية المساهمة، يرجى
الاطلاع على [دليل المساهمة](https://github.com/pvharmo2/gha-lab-ba8e0c4217/blob/main/CONTRIBUTING.rst).
<!-- contributors-start -->
## المساهمون ✨
<details>
<summary>الشكر يعود لهؤلاء الأشخاص الرائعين:</summary>
<a href="https://allcontributors.org/docs/en/emoji-key">مفتاح الرموز التعبيرية </a><!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/nhirschfeld/"><img src="https://assets.kitploit.com/production/public/readmes/54125/f4402f9bd55d0c38153c6130da7580c4e2691fd34453865a204f75b6a444edb1/86c6c5b903d105fc174017914eb2a96c53cf9082818df2e263dc47eb339960ce-display-v1.webp" width="100px;" alt="Na'aman Hirschfeld"/><br /><sub><b>Na'aman Hirschfeld</b></sub></a><br /><a href="#maintenance-Goldziher" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=Goldziher" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=Goldziher" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=Goldziher" title="Tests">⚠️</a> <a href="#ideas-Goldziher" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-Goldziher" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3AGoldziher" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterschutt"><img src="https://assets.kitploit.com/production/public/readmes/54125/a56e82cb821c908545d0067dc50df5817eca319879f78f8779aca13ebefa362b/a65c715a3e245969f1105298df74193398638e471b4ce9a2768dfb0c0b4cb548-display-v1.webp" width="100px;" alt="Peter Schutt"/><br /><sub><b>Peter Schutt</b></sub></a><br /><a href="#maintenance-peterschutt" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=peterschutt" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=peterschutt" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=peterschutt" title="Tests">⚠️</a> <a href="#ideas-peterschutt" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-peterschutt" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Apeterschutt" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://ashwinvin.github.io"><img src="https://assets.kitploit.com/production/public/readmes/54125/23adb745982227a24fff8903555abc8f53dfd3d63ff2eff1767b9df30462013e/e0bdeef951eeaf745ca738e8bf159cbd312f30e5433da5caee6fc3629216f698-display-v1.webp" width="100px;" alt="Ashwin Vinod"/><br /><sub><b>Ashwin Vinod</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ashwinvin" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=ashwinvin" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.damiankress.de"><img src="https://assets.kitploit.com/production/public/readmes/54125/56aabd4ee6987dcba68c0c2e3e822e22caec36a9e25e32686201548596933f2b/85cf56592dc0e33a04cec96dd36a158919d7f325d6a919a3341f501c84dc6a91-display-v1.webp" width="100px;" alt="Damian"/><br /><sub><b>Damian</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=dkress59" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://remotepixel.ca"><img src="https://assets.kitploit.com/production/public/readmes/54125/512f419b221227c898b114dc66d89bf66b406460bd38838863884133ff9b6dee/14af457a3d67003240a217a6ebb8b493e24e997fae3b0cc3bc73b67ecbd72577-display-v1.webp" width="100px;" alt="Vincent Sarago"/><br /><sub><b>Vincent Sarago</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=vincentsarago" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://hotfix.guru"><img src="https://assets.kitploit.com/production/public/readmes/54125/5e658468df586304500ab4fb705fad107f912833cd1da627d6af7019454b4928/945a0bdf0061a1504bc8cab05fd83d1fb25dda7a176c645e8867ba2b5a1c54dc-display-v1.webp" width="100px;" alt="Jonas Krüger Svensson"/><br /><sub><b>Jonas Krüger Svensson</b></sub></a><br /><a href="#platform-JonasKs" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sondrelg"><img src="https://assets.kitploit.com/production/public/readmes/54125/59c8e74211247a6ac94f9a475b94b43d6657f744326449f6dc1d7ea4d2526930/801354eece401f0ed46bf97f5397fd8895b3146a7432bff450081f80ece257de-display-v1.webp" width="100px;" alt="Sondre Lillebø Gundersen"/><br /><sub><b>Sondre Lillebø Gundersen</b></sub></a><br /><a href="#platform-sondrelg" title="Packaging/porting to new platform">📦</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vrslev"><img src="https://assets.kitploit.com/production/public/readmes/54125/cc22f022ad70cbda21c9eab68c9a4103f3045af11c021a23a827d8977414cc08/fe418f8315719b14d304c49b420541b623a53e4749b442069b27b6532991f1c6-display-v1.webp" width="100px;" alt="Lev"/><br /><sub><b>Lev</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=vrslev" title="Code">💻</a> <a href="#ideas-vrslev" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timwedde"><img src="https://assets.kitploit.com/production/public/readmes/54125/61a82f76e834ab13c2532e4d16e19ab0c5ff3f23ce25dc53f280545a384a2edc/6ab0765190429abfab3c086110c7391f72dd9df06236fa542cc9627027c34758-display-v1.webp" width="100px;" alt="Tim Wedde"/><br /><sub><b>Tim Wedde</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=timwedde" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tclasen"><img src="https://assets.kitploit.com/production/public/readmes/54125/d177e4e767a2a010e9e20c7e2ccd9049e674e8304cf0c6cf4ff9c8271a0e4055/c738cd1040be71e3b8aaa4b00cdf90fc617008242df406112bef8aaddf8388af-display-v1.webp" width="100px;" alt="Tory Clasen"/><br /><sub><b>Tory Clasen</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=tclasen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://t.me/Bobronium"><img src="https://assets.kitploit.com/production/public/readmes/54125/e243fe927ef2701ff5f5b3a1e1c256a60f9605efd2aa13546ee6159892dab0bd/ea0b5418d9bf6dd1d6b1649fb0d9665770ccf8f4957c9906739464a9559c4595-display-v1.webp" width="100px;" alt="Arseny Boykov"/><br /><sub><b>Arseny Boykov</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Bobronium" title="Code">💻</a> <a href="#ideas-Bobronium" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yudjinn"><img src="https://assets.kitploit.com/production/public/readmes/54125/f9881b5fd8f0203bd0fd4f0e638fc94553549aa2cbe7d3c7ef611764f2536be6/eade801852501b32e36fefa04ba3b0281a5c21383fc2c719481abf1229dee817-display-v1.webp" width="100px;" alt="Jacob Rodgers"/><br /><sub><b>Jacob Rodgers</b></sub></a><br /><a href="#example-yudjinn" title="Examples">💡</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/danesolberg"><img src="https://assets.kitploit.com/production/public/readmes/54125/ff569c2184bc300aa94a1011d161546e5b16720fa68d9120f2e00e1803b6f2bd/930e1b583d50cb8bfaa20c91fd96f5c90465332bc5fa84d1c0bd5b788fa4260a-display-v1.webp" width="100px;" alt="Dane Solberg"/><br /><sub><b>Dane Solberg</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=danesolberg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/madlad33"><img src="https://assets.kitploit.com/production/public/readmes/54125/e792b8e7ecbe26c41feca6d0aa7466b8187207db435f352fef7fff88681dcfba/29407ae8b4fe1fd1bb27f485fbe1c8799a10e73253e8d5d29ac52d85492f378b-display-v1.webp" width="100px;" alt="madlad33"/><br /><sub><b>madlad33</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=madlad33" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://matthewtyleraylward.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/3bffac7af746f12af08fd46f1106a575d8adf376f30d788685a54c11d07e17a8/5f5eaa03eeba82c8408eefed01ea3068228dc7751e0cd34a05e256cfc33c7359-display-v1.webp" width="100px;" alt="Matthew Aylward "/><br /><sub><b>Matthew Aylward </b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Butch78" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joko013"><img src="https://assets.kitploit.com/production/public/readmes/54125/3f089fbc0ddb0b31316b21ebde7275cc1308b63f0cfed4a81b2b651bf938c71b/90efaf18ab51b61dba8bc7aed12dfda70d209b44731271d50b7202c5d3ab6e59-display-v1.webp" width="100px;" alt="Jan Klima"/><br /><sub><b>Jan Klima</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Joko013" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/i404788"><img src="https://assets.kitploit.com/production/public/readmes/54125/e1aba1dd1fe0bc19a9a8c6d657afa3359ebf0a1f8720ff2cc370e4ca83c37012/0a7cfa4b1466d8e4805dd58e799d61375a4784bbeb2b1bda749bce8468fd9bad-display-v1.webp" width="100px;" alt="C2D"/><br /><sub><b>C2D</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=i404788" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/to-ph"><img src="https://assets.kitploit.com/production/public/readmes/54125/3d184bed6a07b3d5d2b9274629ad8bf36b96bd63d8c66e54cd55cb5820e8524f/b8a2533dfe6785389a3bffc1173283b8edc5c81d3b80d6ecfcc2f1f28d0d1d93-display-v1.webp" width="100px;" alt="to-ph"/><br /><sub><b>to-ph</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=to-ph" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://imbev.gitlab.io/site"><img src="https://assets.kitploit.com/production/public/readmes/54125/6146ea265b16d445dfc88dbe6f970a0d5dcfff350224ff0fea8e36f7662679c1/48cb0289d06635fccc0c1c805b9361dc0ab2f8eabb53cace7dc3726274ec6e67-display-v1.webp" width="100px;" alt="imbev"/><br /><sub><b>imbev</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=imbev" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://git.roboces.dev/catalin"><img src="https://assets.kitploit.com/production/public/readmes/54125/913f9392ff871b91d59b6bcca91528fabab38d7992889d22edb37e8659e3df3c/fda62032d3387fe68c6c8c282aedcaaf42b451b86f3b4f30af2fa36a26dbdf16-display-v1.webp" width="100px;" alt="cătălin"/><br /><sub><b>cătălin</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=185504a9" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Seon82"><img src="https://assets.kitploit.com/production/public/readmes/54125/cfa9e4a9e6bb3ab325a5ae7d344abc2acc8c52eee43dda34ee11d2907c07809d/b3235aba38c43779fe974eff543ef063002cd441f30d5ab2c448fd0e662be725-display-v1.webp" width="100px;" alt="Seon82"/><br /><sub><b>Seon82</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Seon82" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/slavugan"><img src="https://assets.kitploit.com/production/public/readmes/54125/4d61d40991d73b242c8678bab66e6809eb86780eeae8f9d8dc098f607d1d8397/28635b7caf2c773ff6320ba21445d4f8e2adf32546028c2a3a754d928e335c2c-display-v1.webp" width="100px;" alt="Slava"/><br /><sub><b>Slava</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=slavugan" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Harry-Lees"><img src="https://assets.kitploit.com/production/public/readmes/54125/33499f12e7d47b28a493d52a6a4ac736f500018e266e53b571f6ff23610daa8e/31f7396f695381480e26ac0bfc7667371fc6e418a77c3e3e7f83bb7c0cb2312c-display-v1.webp" width="100px;" alt="Harry"/><br /><sub><b>Harry</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Harry-Lees" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=Harry-Lees" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cofin"><img src="https://assets.kitploit.com/production/public/readmes/54125/6ef102acb41490655c7c9587ad7f36b6562f966dd89fc4982fb22486c1684d20/f97d2595c751f55d34a5fb0250ab84caf8f7393056949f58b28c4e753fc5ef97-display-v1.webp" width="100px;" alt="Cody Fincher"/><br /><sub><b>Cody Fincher</b></sub></a><br /><a href="#maintenance-cofin" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=cofin" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=cofin" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=cofin" title="Tests">⚠️</a> <a href="#ideas-cofin" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-cofin" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Acofin" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.patreon.com/cclauss"><img src="https://assets.kitploit.com/production/public/readmes/54125/8d82b5728fc94ab53f624e2c8030ee4a2036c94f98c6da7b1d9c496eb187b102/774b146cc9cc159b7fd2300276cfb853b8413fbaeaa363d138f23c7e697d6327-display-v1.webp" width="100px;" alt="Christian Clauss"/><br /><sub><b>Christian Clauss</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=cclauss" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/josepdaniel"><img src="https://assets.kitploit.com/production/public/readmes/54125/f8d1f00190ffed5913cb3aabbb7f08dbe8f9375cdc3c701318931da057103417/f9be2313751956bef69d44e36ed66bf1564ca3ee0b6563507a60c6daead8f2af-display-v1.webp" width="100px;" alt="josepdaniel"/><br /><sub><b>josepdaniel</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=josepdaniel" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/devtud"><img src="https://assets.kitploit.com/production/public/readmes/54125/c0135f136b1a1f1c1a0640f6953a16aff2785c5effb38313b920a916742266ed/570a2960b77e4f7edef89356434ba90d6c6c722dcf14456695875273a452e0ed-display-v1.webp" width="100px;" alt="devtud"/><br /><sub><b>devtud</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/issues?q=author%3Adevtud" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nramos0"><img src="https://assets.kitploit.com/production/public/readmes/54125/5b85e16e6bfee6b545b15a661b1d66aa9304116b8df66545514d624676a8d021/9e7beafe62f0b08dca4bf4c5279a04a4c307fa658e87dfc73ee1e33b82941f8d-display-v1.webp" width="100px;" alt="Nicholas Ramos"/><br /><sub><b>Nicholas Ramos</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=nramos0" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/seladb"><img src="https://assets.kitploit.com/production/public/readmes/54125/2af4fa910e71cfe05fcdac37928cf9f17ad7c3185c71d253b5cb7b06d27ed1a3/b6f3ba6d554e1dbfa9bb909343782a4a05039fbbe2b7bcb72dd2650ad4ab91d8-display-v1.webp" width="100px;" alt="seladb"/><br /><sub><b>seladb</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=seladb" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=seladb" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/aedify-swi"><img src="https://assets.kitploit.com/production/public/readmes/54125/8c0872af366dc5a9851a937ec499caf05db8b6ed4c2553a9fac3d070db82674d/f3a4b6abf7ea4ae7b8ca6661fec61f5e4a1013f4ee471f0b4f38b73114af1e8f-display-v1.webp" width="100px;" alt="Simon Wienhöfer"/><br /><sub><b>Simon Wienhöfer</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=aedify-swi" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mobiusxs"><img src="https://assets.kitploit.com/production/public/readmes/54125/9537c6790725f4c569ae38dea7722e2bc489dea3556c729cfd043bf82338564e/ef1fedf62de9f5ed4a5438aea376000a95c3e15b5edfc15d380ad4841a543993-display-v1.webp" width="100px;" alt="MobiusXS"/><br /><sub><b>MobiusXS</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=mobiusxs" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://aidansimard.dev"><img src="https://assets.kitploit.com/production/public/readmes/54125/d14a554c0f827c023783d3cb807c914786e35d25f027c6270272b732a07d67f5/ef4f3e588785bc83696f79ab32a7a30c104cfe6b9a94ffc40da79ec0e9c35ce2-display-v1.webp" width="100px;" alt="Aidan Simard"/><br /><sub><b>Aidan Simard</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Aidan-Simard" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/waweber"><img src="https://assets.kitploit.com/production/public/readmes/54125/799eac68f18be48f8a3483e7653c701eba5c52c825c7062764c09c59f3ef081b/53a00939563838e56c04a538851f7d85ed576dd531760a08a39add8d450d4b9c-display-v1.webp" width="100px;" alt="wweber"/><br /><sub><b>wweber</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=waweber" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://scolvin.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/bc42fe32b39302fbcf13562b19638e7e59cff31974853c51ee5cc0bb8efa4ff5/04666b66ec55df891db00d981661d6ed77977de9cef79a2a97b9d817d19d3ca7-display-v1.webp" width="100px;" alt="Samuel Colvin"/><br /><sub><b>Samuel Colvin</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=samuelcolvin" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/toudi"><img src="https://assets.kitploit.com/production/public/readmes/54125/d055bffdb1356f03cf1c705520a66954685f3fe2c5aa56724dcef05fb3fc59da/01a7f723600e146eec6240d03a03d2ef87bf46ebe119b119a1e3df532ad0f581-display-v1.webp" width="100px;" alt="Mateusz Mikołajczyk"/><br /><sub><b>Mateusz Mikołajczyk</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=toudi" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Alex-CodeLab"><img src="https://assets.kitploit.com/production/public/readmes/54125/b0e7cfded6e188e909a9c8afd217149f6f0f59ac48135787f327a0e55a8b2ba1/7878d36b0ecd8b27b7d11008af0f52b8ebce6d513faaf4294a5ba9ca9f567c81-display-v1.webp" width="100px;" alt="Alex "/><br /><sub><b>Alex </b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Alex-CodeLab" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/odiseo0"><img src="https://assets.kitploit.com/production/public/readmes/54125/407f9f7cc9b26e885eff5ddcbea4fdc5fa038d45356c05e74683a6cd97e0f46e/17bfa919793f0eb02c325f728c34b5a954947dc9f4c21585354ac05a1697525c-display-v1.webp" width="100px;" alt="Odiseo"/><br /><sub><b>Odiseo</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=odiseo0" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ingjavierpinilla"><img src="https://assets.kitploit.com/production/public/readmes/54125/b9ce53fa990a97d55ce9bee6f169f0d5f0bbe81e2fe5205e90a133032cd88e31/2eb978885808a2b1564aa994135aec297138a705dc824b18388283a1f65e6add-display-v1.webp" width="100px;" alt="Javier Pinilla"/><br /><sub><b>Javier Pinilla</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ingjavierpinilla" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Chaoyingz"><img src="https://assets.kitploit.com/production/public/readmes/54125/3654b2d0e656d882bb46c857babf531c145da4ec1773a9c772b8a5ea341966ec/ccd0a26030990b44d19086aba69842cd082ac751a950fa7c93f04a522a611e1b-display-v1.webp" width="100px;" alt="Chaoying"/><br /><sub><b>Chaoying</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Chaoyingz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/infohash"><img src="https://assets.kitploit.com/production/public/readmes/54125/f6b5e7f95d76b915f13f8609b584af60c01a5b2ad69e0031f6e944a5271db313/6e1d199b58013fc6a70cad8436ebaadf8b29b1b6ca70037ff990e064aaf18d12-display-v1.webp" width="100px;" alt="infohash"/><br /><sub><b>infohash</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=infohash" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/john-ingles/"><img src="https://assets.kitploit.com/production/public/readmes/54125/9e80945cab5f42788d689f76c32879ede4d1483752105b04ec9d3401f04731b1/2fc96eb80e409fb0f5def65cff12dbc8cf75c9eb6ad8525ce9c8ffaf5516e719-display-v1.webp" width="100px;" alt="John Ingles"/><br /><sub><b>John Ingles</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=john-ingles" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/h0rn3t"><img src="https://assets.kitploit.com/production/public/readmes/54125/071053a9f88579959c8e3116947dbdbf2c591e6623843e6001d315e70121fd76/a382054902c78cb33066e03dc2f923c520e40424deabba72332e9f3dc16feba2-display-v1.webp" width="100px;" alt="Eugene"/><br /><sub><b>Eugene</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=h0rn3t" title="Tests">⚠️</a> <a href="https://github.com/litestar-org/litestar/commits?author=h0rn3t" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jonadaly"><img src="https://assets.kitploit.com/production/public/readmes/54125/2b3aca23fca599c12469ea5857b1692da95409f1d13e1036b092cc3627210e42/7a5ae2f5445c667223debb63d552c71eb6d497f065b32a25c94bf019b4056372-display-v1.webp" width="100px;" alt="Jon Daly"/><br /><sub><b>Jon Daly</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=jonadaly" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=jonadaly" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://harshallaheri.me/"><img src="https://assets.kitploit.com/production/public/readmes/54125/3c7bd08c351c87f04f7f1e96b7c502d03eb4bbabd3711a8fbe0e1c3fb9c269c3/089e52b164250e79eaefdc33a26054611be3faf706fff7f203b3164c81389a35-display-v1.webp" width="100px;" alt="Harshal Laheri"/><br /><sub><b>Harshal Laheri</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Harshal6927" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=Harshal6927" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sorasful"><img src="https://assets.kitploit.com/production/public/readmes/54125/e157f46d2bf0ffeddd420f76470d9c368d449b2a9a4365b1efc9e654ca2321ea/270e16f701964a41c7b3571c2168dadeba26b414e91c62915e74a8539113cf5d-display-v1.webp" width="100px;" alt="Téva KRIEF"/><br /><sub><b>Téva KRIEF</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=sorasful" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jtraub"><img src="https://assets.kitploit.com/production/public/readmes/54125/26d68d19df7c59d1f6b34127f9ae6b117ebeb20b0efec63bd2f025db7c08298e/491e76647af1f081ede8f3e4573b8b59854d63623e171c55586c97a687feeeef-display-v1.webp" width="100px;" alt="Konstantin Mikhailov"/><br /><sub><b>Konstantin Mikhailov</b></sub></a><br /><a href="#maintenance-jtraub" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=jtraub" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=jtraub" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=jtraub" title="Tests">⚠️</a> <a href="#ideas-jtraub" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-jtraub" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Ajtraub" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://linkedin.com/in/mitchell-henry334/"><img src="https://assets.kitploit.com/production/public/readmes/54125/3eace07ea9f88dcb5bb568453b1b53c8d79f55957196187b37e5097888f9e7d8/4b9bf9bfd301ee4e1dac9cb1905f67f99d516db19f464033b7689df0249af4af-display-v1.webp" width="100px;" alt="Mitchell Henry"/><br /><sub><b>Mitchell Henry</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=devmitch" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chbndrhnns"><img src="https://assets.kitploit.com/production/public/readmes/54125/1a8ff0e0a6293fdb3ec02d6c890abd2764dc9e205eb52ac7e22e1c844b570ee7/4f303c19deed9a40b78b42615560ec615d655a21866d72cf953a6fbf3f1b4254-display-v1.webp" width="100px;" alt="chbndrhnns"/><br /><sub><b>chbndrhnns</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=chbndrhnns" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nielsvanhooy"><img src="https://assets.kitploit.com/production/public/readmes/54125/6f57ae6137cf78f77351821487e56fd3853e8d853a5f40cb5fd7979f8b0b7a5e/b1e40b10f75cb577e769e8a6cb11796cd6729e84fdd44c401a87d9622d71254c-display-v1.webp" width="100px;" alt="nielsvanhooy"/><br /><sub><b>nielsvanhooy</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=nielsvanhooy" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Anielsvanhooy" title="Bug reports">🐛</a> <a href="https://github.com/litestar-org/litestar/commits?author=nielsvanhooy" title="Tests">⚠️</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/provinzkraut"><img src="https://assets.kitploit.com/production/public/readmes/54125/30f9f97c03cbdc20acc50e66245044ba71e960aac3ebe32e8a9df9e147e144f6/8a04ea0f923c34bce2790c40700b048bd6bb92a0b9efe7fbb65f138813c7b68f-display-v1.webp" width="100px;" alt="provinzkraut"/><br /><sub><b>provinzkraut</b></sub></a><br /><a href="#maintenance-provinzkraut" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=provinzkraut" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=provinzkraut" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=provinzkraut" title="Tests">⚠️</a> <a href="#ideas-provinzkraut" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-provinzkraut" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Aprovinzkraut" title="Bug reports">🐛</a> <a href="#design-provinzkraut" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jab"><img src="https://assets.kitploit.com/production/public/readmes/54125/b3f23149939f25bbbd8ff5eae26ca95b2e1c7b85d8a4bde050caa9627143eb78/73ebb63ac1c5820dd44c5a5c688e137c0bdeedc9290c5a1a8b6350099a6e80c9-display-v1.webp" width="100px;" alt="Joshua Bronson"/><br /><sub><b>Joshua Bronson</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=jab" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://linkedin.com/in/roman-reznikov"><img src="https://assets.kitploit.com/production/public/readmes/54125/fc987fa88c9684526eba83cd638453d9a16f095c2148074a0d1c07b791db2403/583b811c83fd8eb8daf43251c1b60a797f0d8aa96b5e780afe5c9f91abd68492-display-v1.webp" width="100px;" alt="Roman Reznikov"/><br /><sub><b>Roman Reznikov</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ReznikovRoman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://mookrs.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/6a812dd51ac82f47c37bf9fe17c34f52b2e6caac09acbf126cf7438ca1cf6df2/7f8a81180b7ab8669e065528f6e7d5b5e989614f2705173795d8475d305fbbc1-display-v1.webp" width="100px;" alt="mookrs"/><br /><sub><b>mookrs</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=mookrs" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://mike.depalatis.net"><img src="https://assets.kitploit.com/production/public/readmes/54125/8aeffd009d5d563daf68d4fc3f33a06e836d7326b179d52093f6f1d7f0e419a4/55397ec632090452a1ea25ee6d353e39468dba64147db00abf9c96d71054347e-display-v1.webp" width="100px;" alt="Mike DePalatis"/><br /><sub><b>Mike DePalatis</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=mivade" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pemocarlo"><img src="https://assets.kitploit.com/production/public/readmes/54125/48a9ecccf55b3fa7657f2912f928c9356b3a96a9bac1aa1d016a945496fc6a17/fef75afa6c573bd6200c6480acf50fd5f02116d996f035fd603334c3d11decf0-display-v1.webp" width="100px;" alt="Carlos Alberto Pérez-Molano"/><br /><sub><b>Carlos Alberto Pérez-Molano</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=pemocarlo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.bestcryptocodes.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/e5f1a415e4d776bc0cc867d3555f77eee48bb688c386cf1bd8e69f423c5e0c4c/6aa060a7d18e76f5e676da579e8ba6d814900836933c7f12722c78d5f452e938-display-v1.webp" width="100px;" alt="ThinksFast"/><br /><sub><b>ThinksFast</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ThinksFast" title="Tests">⚠️</a> <a href="https://github.com/litestar-org/litestar/commits?author=ThinksFast" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ottermata"><img src="https://assets.kitploit.com/production/public/readmes/54125/46c30ce09312a87901d38ee4bf9d43aa2c00d91ce7051d325ffef44db3b9053c/6ff18845272a7069b7bebe9a3b282b6ac5638ca67f2e2d48f86d04488e2ea580-display-v1.webp" width="100px;" alt="Christopher Krause"/><br /><sub><b>Christopher Krause</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ottermata" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
يتبع هذا المشروع مواصفات [all-contributors](https://github.com/all-contributors/all-contributors).
المساهمات من أي نوع مرحب بها!
</details>
<!-- contributors-end -->