تزامن رائع
قائمة منسقة بعناية من أطر عمل Python والمكتبات والبرامج والموارد الرائعة.
توفر وحدة Python asyncio التي تم تقديمها إلى المكتبة القياسية مع Python 3.4 بنية تحتية لكتابة تعليمات برمجية متزامنة أحادية الخيط باستخدام coroutines، وتعدد الوصول إلى الإدخال/الإخراج عبر المقابس والموارد الأخرى، وتشغيل عملاء الشبكة والخوادم، وغيرها من الأوليات ذات الصلة.
Asyncio ليست تقنية جديدة تمامًا، ولكن يبدو أنها أصبحت شائعة جدًا منذ بضع سنوات - خاصة في مجتمع Python ومع إصدار Python 3.4 في مارس 2014. وبالتالي، من الصعب جدًا أن تبقي نفسك على اطلاع دائم مع الحزم الأكثر روعة هناك. يمكنك العثور على بعض هذه الحزم الرائعة هنا، وإذا كنت تفتقد إحدى هذه الحزم، فإننا نعتمد عليك في إنشاء مشكلة أو طلب سحب مع اقتراحك.
محتويات
- أطر الويب
- قوائم انتظار الرسائل
- برامج تشغيل قاعدة البيانات
- الشبكات
- GraphQL
- اختبار
- الحلقات البديلة
- متنوعات
- كتابات
- محادثات
- بدائل التزامن
أطر الويب
مكتبات لبناء تطبيقات الويب.
- FastAPI - إطار عمل Python 3.6+ API عالي الأداء يعتمد على تلميحات النوع. مدعوم من ستارليت وPydantic.
- جانغو - إطار ويب بايثون راسخ وعالي المستوى مع مجتمع ضخم ونظام بيئي.
- Starlette - إطار/مجموعة أدوات ASGI خفيفة الوزن لبناء خدمات عالية الأداء.
- aiohttp - عميل/خادم Http لـ asyncio (PEP-3156).
- sanic - خادم ويب Python 3.5+ تمت كتابته ليعمل بسرعة.
- Quart - إطار عمل مصغر للويب غير متزامن مع نفس واجهة برمجة التطبيقات مثل Flask.
- autobahn - WebSocket وWAMP يدعمان asyncio وTwisted للعملاء والخوادم.
- websockets - مكتبة لبناء خوادم وعملاء WebSocket في Python مع التركيز على الصحة والبساطة.
- تورنادو - إطار عمل ويب عالي الأداء ومكتبة شبكات غير متزامنة.
- uvicorn - خادم ASGI فائق السرعة.
قوائم انتظار الرسائل
مكتبات لتنفيذ التطبيقات باستخدام قوائم انتظار الرسائل.
- aioamqp - تنفيذ AMQP باستخدام asyncio.
- pyzmq - روابط بايثون لـ ZeroMQ.
- aiozmq - تكامل Asyncio البديل مع ZeroMQ.
- crossbar - Crossbar.io عبارة عن منصة شبكات لتطبيقات الخدمات الموزعة والصغيرة.
- asyncio-nats - عميل لنظام المراسلة NATS.
- aiokafka - عميل أباتشي كافكا.
برامج تشغيل قاعدة البيانات
مكتبات للاتصال بقواعد البيانات.
- asyncpg - مكتبة عميل قاعدة بيانات PostgreSQL السريعة لـ Python/asyncio.
- asyncpgsa - Asyncpg مع الدعم الأساسي لـ sqlalchemy.
- aiopg - مكتبة للوصول إلى قاعدة بيانات PostgreSQL.
- aiomysql - مكتبة للوصول إلى قاعدة بيانات MySQL
- aioodbc - مكتبة للوصول إلى قواعد بيانات ODBC.
- المحرك - برنامج تشغيل Python غير المتزامن لـ MongoDB.
- redis-py - عميل Redis Python (الذي يتضمن aioreadis الآن).
- aiocouchdb - عميل CouchDB مبني على aiohttp (asyncio).
- aioinflux - عميل InfluxDB مبني على قمة aiohttp.
- aioes - برنامج تشغيل متوافق مع Asyncio لـ Elasticsearch.
- peewee-async - تطبيق ORM يعتمد على peewee وaiopg.
- GINO - عبارة عن Python ORM خفيف الوزن وغير متزامن يعتمد على SQLAlchemy Core، ولهجة غير متزامنة.
- Tortoise ORM - ORM أصلي متعدد الواجهات مع واجهة برمجة تطبيقات تشبه Django وإدارة علاقات سهلة.
- قواعد البيانات - الوصول إلى قاعدة البيانات غير المتزامنة لـ SQLAlchemy الأساسية، مع دعم PostgreSQL وMySQL وSQLite.
- Prisma Client Python - ORM تم إنشاؤه تلقائيًا وآمن تمامًا ومدعوم من Pydantic ومصمم خصيصًا لمخططك - يدعم SQLite وPostgreSQL وMySQL وMongoDB وMariaDB والمزيد.
- Piccolo - أداة إنشاء ORM/الاستعلام التي يمكنها العمل في أوضاع غير متزامنة ومزامنة، مع واجهة المستخدم الرسومية الرائعة للإدارة والبرمجيات الوسيطة ASGI.
- Beanie - MongoDB ODM غير متزامن مبني على المحرك وPydantic.
الشبكات
مكتبات للتواصل في شبكتك.
- AsyncSSH - يوفر تطبيقًا غير متزامن للعميل والخادم لبروتوكول SSHv2.
- aiodns - محلل DNS بسيط لعدم المزامنة.
- aioping - تنفيذ سريع غير متزامن لبروتوكول ICMP (ping).
- httpx - عميل HTTP غير متزامن لـ Python 3 مع طلبات API المتوافقة.
GraphQL
مكتبات لبناء خوادم GraphQL.
- Ariadne - مكتبة Python الأولى للمخطط لتنفيذ خوادم GraphQL.
- Tartiflette - محرك Python 3.6+ GraphQL الأول للمخطط والمبني على
libgraphqlparser
. - الفراولة - خادم Python 3 GraphQL الأول من نوعه مع دعم Django وFlask وFastAPI/Starlette.
اختبار
مكتبات لاختبار التطبيقات القائمة على عدم التزامن.
- aiomock - مكتبة وهمية لبايثون تدعم الأساليب غير المتزامنة.
- asynctest - قم بتحسين حزمة Unittest القياسية بميزات للاختبار. مكتبات غير متزامنة
- pytest-asyncio - دعم Pytest لـ asyncio.
- الردود - السخرية من Asyncio http. على غرار مكتبة الاستجابات المستخدمة للطلبات.
- aioresponses - مساعد لطلبات الويب الوهمية/المزيفة في حزمة Python aiohttp.
الحلقات البديلة
تطبيقات حلقة التزامن البديلة.
- uvloop - تنفيذ سريع للغاية لحلقة حدث asyncio أعلى libuv.
متنوعات
مكتبات أخرى رائعة غير متزامنة.
- aiochan - تزامن على نمط CSP مع القنوات، والتحديد والمعالجة المتعددة أعلى عدم التزامن.
- aiocache - مدير ذاكرة التخزين المؤقت للواجهات الخلفية المختلفة.
- aiofiles - دعم الملفات لـ asyncio.
- aiopath -
pathlib
غير متزامن لعدم المزامنة. - aiodebug - مكتبة صغيرة لمراقبة واختبار البرامج غير المتزامنة.
- aiorun - دالة
run()
التي تتعامل مع كافة الإجراءات المعتادة لبدء التشغيل وإيقاف التشغيل بسلاسة. - aiosc - تنفيذ خفيف الوزن للتحكم في الصوت المفتوح.
- aioserial - بديل مباشر لـ pySerial.
- aiozipkin - أدوات التتبع الموزعة لـ asyncio مع zipkin
- asgiref - أدوات الواجهة الخلفية لتكامل ASGI مع WSGI، وتتضمن أغلفة الوظائف sync_to_async وasync_to_sync.
- async_property - مصمم لغة Python للخصائص غير المتزامنة.
- ruia - إطار ويب صغير غير متزامن يعتمد على عدم المزامنة.
- kubernetes_asyncio - مكتبة عميل غير متزامنة لـ Kubernetes.
- aiomisc - أدوات متنوعة لـ
asyncio
. - Taskiq - مدير المهام الموزع غير المتزامن (مثل الكرفس، ولكن غير متزامن).
كتابات
التوثيق ومنشورات المدونات وغيرها من الكتابات الرائعة حول عدم المزامنة.
- الوثائق الرسمية غير المتزامنة - الإدخال/الإخراج غير المتزامن، وحلقة الأحداث، والروتينات والمهام.
- مقدمة قصيرة مكتوبة بشكل جيد إلى asyncio - المولدات، وCoroutines، وNative Coroutines، وasync/await.
- AsyncIO لمطور Python العامل - مقدمة لطيفة للبرمجة غير المتزامنة بدءًا من الأمثلة الأساسية التي تعمل حتى جلب عنوان URL.
- حدود اختبار Python aiohttp - إجراء مليون طلب باستخدام python-aiohttp.
- ASGI (واجهة بوابة الخادم غير المتزامنة) - خليفة روحي لـ WSGI، يهدف إلى توفير واجهة قياسية بين خوادم ويب Python والأطر والتطبيقات غير المتزامنة.
- مقدمة المبادئ الأولى إلى Asyncio - مقدمة مبادئ أولية بدون كلمات طنانة حول الأعمال الداخلية لـ Asyncio.
- تطوير واختبار واجهة برمجة تطبيقات غير متزامنة باستخدام FastAPI وPytest - يتناول هذا البرنامج التعليمي كيفية تطوير واختبار واجهة برمجة تطبيقات غير متزامنة باستخدام FastAPI باستخدام التطوير القائم على الاختبار (TDD).
- Python Concurrency with asyncio - تعرف على كيفية تسريع كود Python البطيء من خلال البرمجة المتزامنة ومكتبة asyncio المتطورة.
محادثات
تسجيلات محادثات رهيبة حول asyncio.
- موضوعات ذات أهمية (بايثون أسينسيو) | تسجيل الشاشة | الشرائح - الكلمة الرئيسية في PyCon Brasil 2015 (ديفيد بيزلي).
- إرشادات الإدخال/الإخراج غير المتزامنة في Python - إرشادات التعليمات البرمجية المكونة من 8 أجزاء (فيليب جو).
- المزامنة/الانتظار في Python 3.5 ولماذا هو رائع - EuroPython 2016 (يوري سيليفانوف).
- الخوف والانتظار في حالة عدم التزامن: رحلة وحشية إلى قلب حلم كوروتين | Screencast - الكلمة الرئيسية في PyOhio 2016 (ديفيد بيزلي).
- لغة بايثون غير المتزامنة للمبتدئين بالكامل | الشرائح - PyCon 2017 (ميغيل غرينبرغ).
- إزالة الغموض عن الكلمات الرئيسية غير المتزامنة والمنتظرة في Python - JetBrains TV 2020 (مايكل كينيدي)
بدائل للمزامنة
الأساليب البديلة للبرمجة غير المتزامنة في بايثون، والتي يحاول بعضها دعم بعض التوافق مع asyncio
، والبعض الآخر غير متوافق على الإطلاق.
- كوريو - مكتبة التزامن coroutine.
- جسر كوريو-أسينسيو - التحفة الأساسية -> جسر كوروتين غير متزامن.
- الثلاثي - الإدخال / الإخراج غير المتزامن Pythonic للبشر والثعابين.
- trio-asyncio - إعادة تنفيذ حلقة asyncio الرئيسية أعلى Trio.
- AnyIO - إطار عمل للتزامن والشبكات غير المتزامن عالي المستوى يعمل فوق الثلاثي أو غير المتزامن.