عه یادم رفته بود بگم 😅
بالاخره پس از مدتها
و بازهم به لطف وبداده
پروتکل DoH فعال شد روی دیاناس رفع تحریممون 🤝
Iran Anti-Sanctions DNS (UDP & TCP)
Primary IPv4: 10.70.95.150
Secondary IPv4: 10.70.95.162
Port: 53
Iran Anti-Sanctions DNS (DNS-over-TLS)
Hostname: anti-ban.dynx.pro
Port: 853
Iran Anti-Sanctions DNS (DNS-over-HTTPS)
Address: https://anti-ban.dynx.pro/dns-query
Iran Anti-Sanctions DNS (DNS-over-QUIC)
Address: quic://anti-ban.dynx.pro:853
بالاخره پس از مدتها
و بازهم به لطف وبداده
پروتکل DoH فعال شد روی دیاناس رفع تحریممون 🤝
Iran Anti-Sanctions DNS (UDP & TCP)
Primary IPv4: 10.70.95.150
Secondary IPv4: 10.70.95.162
Port: 53
Iran Anti-Sanctions DNS (DNS-over-TLS)
Hostname: anti-ban.dynx.pro
Port: 853
Iran Anti-Sanctions DNS (DNS-over-HTTPS)
Address: https://anti-ban.dynx.pro/dns-query
Iran Anti-Sanctions DNS (DNS-over-QUIC)
Address: quic://anti-ban.dynx.pro:853
50❤34👎4🔥2
Forwarded from NET XRAY
بات هماکنون فعال شده و میتونید از ویژگیهای جدید لذت ببرید 😉
هدیه ویژه NetXray به شما:
به عنوان قدردانی از همراهیتان٬ با کد زیر 20% تخفیف بگیرید :
کد تخفیف: v2
(قابل استفاده برای تمامی خرید ها - فعال تا 2 روز آینده)
بات جهت استفاده از کد تخفیف و خرید:
- 🤖 @XRayShopBot
هدیه ویژه NetXray به شما:
به عنوان قدردانی از همراهیتان٬ با کد زیر 20% تخفیف بگیرید :
کد تخفیف: v2
(قابل استفاده برای تمامی خرید ها - فعال تا 2 روز آینده)
بات جهت استفاده از کد تخفیف و خرید:
- 🤖 @XRayShopBot
🔥12❤🔥2👍2❤1
Forwarded from ErfJab (Erfan)
لیستی از چنلهای فعال کامیونیتی اتصال آزاد که چه با کدنویسیهاشون چه با آموزشهاشون، وقت و انرژی خود را صرف پیشرفت کامیونیتی کرده اند. [اگر تو لیست نیستید، لطفا چنل خود را برای ما ارسال کنید]
😋 t.me/addlist/xHNaD_No2g9lNjY0
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12
تست سرعت نسخه رایگان و پریمیوم بکهال
بکهال یه تانل پر سرعت از نوع ریورسه
ترنسپورتهای مختلفی برای انتقال داده داره ( در نسخه پریمیوم فکر کنم 10 تایی هستن )
اوپن سورسه و با زبان گو نوشته شده ( نسخه رایگانش )
نسخه رایگان دیگه آپدیتی براش نمیاد هرچند هنوز قابل استفاده هستش...
آخرین نسخه رایگان تا الان: 0.6.5
آخرین نسخه پریمیوم تا الان: 1.4.0 بتا 5
توی نسخه پریمیوم کلی ترنسپورت و گزینههای حرفهای و جدید اضافه شده
خلاصه که نتیجه برای هرکسی، هر سروری و هر شرایطی و کانفیگی متغیره، من این تستها رو در یک شرایط کاملا یکسان حتی روی یک پورت تست کردم.
من پولی نگرفتم و این تبلیغو همینجوری میذارم چون از رایگانشم واقعا راضیام...
شخصا هیچوقت پریمیومش رو نداشتم و از نسخه رایگانش استفاده میکنم برای DynX😅( پول ندارم )
یکی از رفقا سرورهاشو در اختیارم قرار داد که روش بکهال پریمیوم خریداری کرده بود
من ازش این تست رو گرفتم و نتیجه واقعا عالی بود ( وسوسه شدم )
اگه خواستید میتونید با یه هزینه ماهیانه ازشون لایسنس پریمیوم رو بخرید.
بات برای خرید و مدیریت لایسنس:
@backhaulbot
چنل اخبار و ویژگیهای نسخه پریمیوم:
@backhaul_news
بکهال یه تانل پر سرعت از نوع ریورسه
ترنسپورتهای مختلفی برای انتقال داده داره ( در نسخه پریمیوم فکر کنم 10 تایی هستن )
اوپن سورسه و با زبان گو نوشته شده ( نسخه رایگانش )
نسخه رایگان دیگه آپدیتی براش نمیاد هرچند هنوز قابل استفاده هستش...
آخرین نسخه رایگان تا الان: 0.6.5
آخرین نسخه پریمیوم تا الان: 1.4.0 بتا 5
توی نسخه پریمیوم کلی ترنسپورت و گزینههای حرفهای و جدید اضافه شده
خلاصه که نتیجه برای هرکسی، هر سروری و هر شرایطی و کانفیگی متغیره، من این تستها رو در یک شرایط کاملا یکسان حتی روی یک پورت تست کردم.
من پولی نگرفتم و این تبلیغو همینجوری میذارم چون از رایگانشم واقعا راضیام...
شخصا هیچوقت پریمیومش رو نداشتم و از نسخه رایگانش استفاده میکنم برای DynX😅( پول ندارم )
یکی از رفقا سرورهاشو در اختیارم قرار داد که روش بکهال پریمیوم خریداری کرده بود
من ازش این تست رو گرفتم و نتیجه واقعا عالی بود ( وسوسه شدم )
اگه خواستید میتونید با یه هزینه ماهیانه ازشون لایسنس پریمیوم رو بخرید.
بات برای خرید و مدیریت لایسنس:
@backhaulbot
چنل اخبار و ویژگیهای نسخه پریمیوم:
@backhaul_news
❤8👍6🙏1
چجوری تست سرعت بگیریم از تانلمون؟
( مثلا بکهال )
بعدش:
توی هردو سرور iperf3 رو نصب میکنیم:
توی سرور خارج سرور مود رو روشن میکنیم:
روی سرور ایران برای تست دانلود این دستور:
و برای تست آپلود هم روی سرور ایران:
( مثلا بکهال )
اول باید بدونیم که روی سرور خارج پورت 5201 لیسن میشه.
با تانل بکهال یا هر تانل دیگهای این پورت رو تانل میکنیم مثلا:
8569=5201
یعنی پورت ایران 8569 هست و دیتا رو فوروارد میکنه به 5201 در خارج.
بعدش:
توی هردو سرور iperf3 رو نصب میکنیم:
apt install iperf3
توی سرور خارج سرور مود رو روشن میکنیم:
iperf3 -s
روی سرور ایران برای تست دانلود این دستور:
iperf3 -c 127.0.0.1 -i 1 -t 10 -P 20 -p 8569
و برای تست آپلود هم روی سرور ایران:
iperf3 -c 127.0.0.1 -R -i 1 -t 10 -P 20 -p 8569
👍12❤8❤🔥1🙏1
MattDev
بخش لاگ کلاینت ها هم برای مرزبان نکست pr شد.
عاا
آفرینن
همینهه
دست مریزاد
ناسلامتی اوپن سورسیما
هرکی هرچی بلده میتونه بدون چشمداشت و اگر خواست کانتریبیوت یا کمک کنه...
خود PR که عالیه
حتی اگر مستقیما روی پروژه PR نزنه هم عالیه مثل کارهایی که فریک و مابقی عزیزان انجام میدن...
آفرینن
همینهه
دست مریزاد
ناسلامتی اوپن سورسیما
هرکی هرچی بلده میتونه بدون چشمداشت و اگر خواست کانتریبیوت یا کمک کنه...
خود PR که عالیه
حتی اگر مستقیما روی پروژه PR نزنه هم عالیه مثل کارهایی که فریک و مابقی عزیزان انجام میدن...
👍20
تاحالا شده بخواید دیاناس سرورتون رو تغییر بدید ولی خود به خود برگرده به حالت قبلی؟
این مورد برای من خیلی پیش اومده چون ممکنه از یسری سرویسها و ابزار هایی استفاده کنه که مزایا و معایب خودشونو دارن.
من راحت ترم که صرفا از فایل
تغییرات رو اعمال کنم چون دیگه حتی نیاز به پاک کردن کش هم ندارم
یه اسکریپت ساختم که تشخیص میده سرورتون از چه سرویسی برای مدیریت dns استفاده میکنه و بهتون امکان غیرفعالسازی و حتی حذفش رو میده. اینطوری صرفا از طریق فایل ذکر شده قابل تغییر هست دیاناس هاتون.
کافیه اینو اجرا کنید تو سرورهاتون:
این مورد برای من خیلی پیش اومده چون ممکنه از یسری سرویسها و ابزار هایی استفاده کنه که مزایا و معایب خودشونو دارن.
من راحت ترم که صرفا از فایل
/etc/resolv.conf
تغییرات رو اعمال کنم چون دیگه حتی نیاز به پاک کردن کش هم ندارم
یه اسکریپت ساختم که تشخیص میده سرورتون از چه سرویسی برای مدیریت dns استفاده میکنه و بهتون امکان غیرفعالسازی و حتی حذفش رو میده. اینطوری صرفا از طریق فایل ذکر شده قابل تغییر هست دیاناس هاتون.
کافیه اینو اجرا کنید تو سرورهاتون:
bash <(curl -s https://raw.githubusercontent.com/MrDevAnony/dns_detector/main/dns_detector.sh)
6❤12❤🔥2🔥2
DynX
✍️ آموزش تغییر سرور DNS با Unbound در این آموزش یاد میگیریم چطور یک سرور DNS Resolver بسازیم که بدون نیاز به upstreamهای معروف مثل گوگولی و کلودفلر، درخواستهای DNS رو مدیریت کنه. 🔻 قدم اول: نصب Unbound روی Debian/Ubuntu sudo apt update && sudo apt install…
میخوای لوکیشن دیاناست دقیقا همون لوکیشن خود سرورت باشه و وسواس دیاناس لیک داری؟
پستی که ریپلای زدم مشکلت رو حل میکنه اگه جای دیگهای لیک نداده باشی 🤷🏻♂️
پستی که ریپلای زدم مشکلت رو حل میکنه اگه جای دیگهای لیک نداده باشی 🤷🏻♂️
❤10⚡1
Forwarded from Web Wizard (ᴀʟɪ)
نسخه 3.0.1 منتشر شد. 💫🎉
قابلیت های جدید 👇🏻
دریافت بکاپ از پنل ✅
امکان استاپ کردن کردن تانل و حذف به صورت جداگانه ✅
رفع باگ ها 👇🏻
باگ ست نشدن لایسنس ✅
تنظیم پورت پنل ✅
تغییر تنظیمات تانل ✅
برای نصب 👇🏻
ریپو گیت هاب 👇🏻
لایسنس پروژه 👇🏻
قابلیت های جدید 👇🏻
دریافت بکاپ از پنل ✅
امکان استاپ کردن کردن تانل و حذف به صورت جداگانه ✅
رفع باگ ها 👇🏻
باگ ست نشدن لایسنس ✅
تنظیم پورت پنل ✅
تغییر تنظیمات تانل ✅
برای نصب 👇🏻
bash <(curl -sSL https://raw.githubusercontent.com/webwizards-team/Phantom-Tunnel/main/install.sh)ریپو گیت هاب 👇🏻
https://github.com/webwizards-team/Phantom-Tunnel/tree/main
لایسنس پروژه 👇🏻
TNL-4ADB7CFAB9CE7CE0❤🔥14❤3
Web Wizard
نسخه 3.0.1 منتشر شد. 💫🎉 قابلیت های جدید 👇🏻 دریافت بکاپ از پنل ✅ امکان استاپ کردن کردن تانل و حذف به صورت جداگانه ✅ رفع باگ ها 👇🏻 باگ ست نشدن لایسنس ✅ تنظیم پورت پنل ✅ تغییر تنظیمات تانل ✅ برای نصب 👇🏻 bash <(curl -sSL https://raw.githubusercontent.com/webwizards…
تانلی که جدیدا خیلی اسمشو میشنوم
تانل فانتوم که توسط وب پنل انگاری مدیریت میشه 😅
ایده خفنیه حتما تست کنید و راضی بودید حمایت کنید ازش❤️
تانل فانتوم که توسط وب پنل انگاری مدیریت میشه 😅
ایده خفنیه حتما تست کنید و راضی بودید حمایت کنید ازش❤️
❤22❤🔥1👍1
Forwarded from Backhaul News
🔻 New Transports: udptun, wstun, quictun, xtcpmux, xwsmux
🔻 Fix IPv6 for x transports
🔻 Fix minor bugs
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3👍1
تارا و امیر و .. بازم این بازی استار رو شروع کردن 😂😔
شرمندهمون نکنید، شما تو AnonyNotes گل کاشتید ❤️
تازه یه عزیزی ۵۰ تا زده بود مدتی پیش
خیلی ممنونتونم❤️ همهتون
این پیامم موقت نمیذارم، که بمونه.
شرمندهمون نکنید، شما تو AnonyNotes گل کاشتید ❤️
تازه یه عزیزی ۵۰ تا زده بود مدتی پیش
خیلی ممنونتونم❤️ همهتون
این پیامم موقت نمیذارم، که بمونه.
2❤13
⚡️ یه بات فایل به لینک نوشتم و کاملا رایگانه
🔶 هر نوع فایلی تا 20 مگابایت براش ارسال کنید
🔶 لینک مستقیم دانلودش رو بهتون میده
⚠️ با یه Cname میتونید از دامین غیر فیلتر هم استفاده کنید
- به زودی پابلیکش میکنم گیتهاب که بتونید خودتون به راحتی و کاملا رایگان رانش کنید.
✅ @Anonyf2lbot
🔶 هر نوع فایلی تا 20 مگابایت براش ارسال کنید
🔶 لینک مستقیم دانلودش رو بهتون میده
⚠️ با یه Cname میتونید از دامین غیر فیلتر هم استفاده کنید
- به زودی پابلیکش میکنم گیتهاب که بتونید خودتون به راحتی و کاملا رایگان رانش کنید.
✅ @Anonyf2lbot
❤21
MattDev
بتا سوم تمپلیت CN ریلیز شد + اضافه شدن qrcode ساب و لینک ها + حل مشکلات استایل بخش کانفیگ ها + حل مشکلات نمایش زمان آنلاین بودن و ترافیک باقی مانده + پشتیبانی از مرزبان alpha + حل مشکل qrcode برای کانفیگ های طولانی مثل xhttp https://github.com/MatinDehg…
ندیده بودم این تمپلیت رو
خیلی قشنگه در عین حال سادهس و کارتم راه میندازه
هم برای مرزنشین هم برای مرزبان نکست قابل دسترس هست
خواستید تستش کنید و بهش استار و فیدبک بدید
من که حال کردم🤷♂❤️
خیلی قشنگه در عین حال سادهس و کارتم راه میندازه
هم برای مرزنشین هم برای مرزبان نکست قابل دسترس هست
خواستید تستش کنید و بهش استار و فیدبک بدید
من که حال کردم🤷♂❤️
❤9
Forwarded from Backhaul News
🎛 تفاوت انواع ترنسپورت Mux در بکهال پرمیوم
در حال حاضر، سه نوع ترنسپورت اصلی در نسخه پرمیوم بکهال اضافه شده:
🔹 1. ترنسپورتهای پایه (tcpmux, wsmux, wssmux)
این ترنسپورتها نسخه بهینهشدهی همان مدلهای موجود در GitHub هستند. تستهای گستردهای در شرایط پایدار شبکه روی آنها انجام شده و عملکرد قابل قبولی داشتهاند.
🔹 2. ترنسپورتهای کاربرمحور (utcpmux, uwsmux, uwssmux)
حرف u در اینجا مخفف user است. در برخی موارد، فایروال به دلیل بالا بودن تعداد کانکشنها از یک سرور، آنها را بلاک یا دراپ میکرد. این مدل ترنسپورت به نحوی طراحی شده که برای هر کاربر فقط یک اتصال برقرار شود تا از بروز این مشکل جلوگیری شود.
🔹 3. ترنسپورتهای مقاوم در برابر اختلال (xtcpmux, xwsmux)
این مدلها مخصوص شرایط بحرانی و نتملی طراحی شدهاند.
در ترنسپورتهای قبلی، اگر اختلالی پیش میآمد، کل تانل ریستارت میشد. اما در اینجا، اتصالهای قطعشده بهصورت مستقل مجدداً برقرار میشوند بدون ریست کلی تانل.
همچنین اگر تعداد کانکشنها بهطور ناگهانی کم شود، باقیمانده ترافیک بهصورت هوشمند روی کانکشنهای فعال تقسیم میشود تا قطعی رخ ندهد.
✅ سایر امکانات این ترنسپورت
• پشتیبانی از Bind به چندین پورت همزمان
• اتصال همزمان به چندین سرور خارجی با یک کانفیگ
• پشتیبانی از تنظیم دستی TCP Buffer و MSS
• قابلیت Load Balancing بین چند سرور خارج
• در xwsmux از یک لایبرری سبکتر و سریعتر استفاده شده که معادل httpupgrade در هسته XRay است.
در حال حاضر، سه نوع ترنسپورت اصلی در نسخه پرمیوم بکهال اضافه شده:
این ترنسپورتها نسخه بهینهشدهی همان مدلهای موجود در GitHub هستند. تستهای گستردهای در شرایط پایدار شبکه روی آنها انجام شده و عملکرد قابل قبولی داشتهاند.
حرف u در اینجا مخفف user است. در برخی موارد، فایروال به دلیل بالا بودن تعداد کانکشنها از یک سرور، آنها را بلاک یا دراپ میکرد. این مدل ترنسپورت به نحوی طراحی شده که برای هر کاربر فقط یک اتصال برقرار شود تا از بروز این مشکل جلوگیری شود.
این مدلها مخصوص شرایط بحرانی و نتملی طراحی شدهاند.
در ترنسپورتهای قبلی، اگر اختلالی پیش میآمد، کل تانل ریستارت میشد. اما در اینجا، اتصالهای قطعشده بهصورت مستقل مجدداً برقرار میشوند بدون ریست کلی تانل.
همچنین اگر تعداد کانکشنها بهطور ناگهانی کم شود، باقیمانده ترافیک بهصورت هوشمند روی کانکشنهای فعال تقسیم میشود تا قطعی رخ ندهد.
• پشتیبانی از Bind به چندین پورت همزمان
• اتصال همزمان به چندین سرور خارجی با یک کانفیگ
• پشتیبانی از تنظیم دستی TCP Buffer و MSS
• قابلیت Load Balancing بین چند سرور خارج
• در xwsmux از یک لایبرری سبکتر و سریعتر استفاده شده که معادل httpupgrade در هسته XRay است.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤4
شیش ماه پیش یه بات کوچولو نوشتم
که کاملا رایگان حتی بدون سرور
میتونید اجراش کنید و مثل چکهاست، اطلاعات آیپیرو ازش بگیرید
با api سایت ipinfo هم کار میکنه
خودمم یادم نبود ولی هنوز رانه 😂
سورسش:
https://github.com/MrDevAnony/IPinfoBot
خودش:
@DevIPINFOBot
+ یادم رفت بگم، رایگانه چون با ورکر کلودفلر کار میکنه. دامنه هم داشتید چه بهتر 🤷♂
که کاملا رایگان حتی بدون سرور
میتونید اجراش کنید و مثل چکهاست، اطلاعات آیپیرو ازش بگیرید
با api سایت ipinfo هم کار میکنه
خودمم یادم نبود ولی هنوز رانه 😂
سورسش:
https://github.com/MrDevAnony/IPinfoBot
خودش:
@DevIPINFOBot
+ یادم رفت بگم، رایگانه چون با ورکر کلودفلر کار میکنه. دامنه هم داشتید چه بهتر 🤷♂
👍12❤4
یسری تغییرات دادم این اواخر که لیستشون میکنم:
1. افزایش سرعت و بهینه سازی سرعت dns رفع تحریم.
2. استفاده از unbound به عنوان یک دیاناس Recursive در سرورهای رفع تحریم و ادبلاکر.
3. اضافه شدن بلاکلیستهای ادبلاکر به رفع تحریم ( الان هم رفع تحریم هست هم ادبلاکر )
4. آپدیت پیج مانیتورینگ ( https://monitor.dynx.pro )
5. تغییر بایو همین چنل.
6. تغییر تنظیمات پیشنهادی unbound برای ساخت یک دیاناس Recursive لوکال
1. افزایش سرعت و بهینه سازی سرعت dns رفع تحریم.
2. استفاده از unbound به عنوان یک دیاناس Recursive در سرورهای رفع تحریم و ادبلاکر.
3. اضافه شدن بلاکلیستهای ادبلاکر به رفع تحریم ( الان هم رفع تحریم هست هم ادبلاکر )
4. آپدیت پیج مانیتورینگ ( https://monitor.dynx.pro )
5. تغییر بایو همین چنل.
6. تغییر تنظیمات پیشنهادی unbound برای ساخت یک دیاناس Recursive لوکال
❤19
Forwarded from Rogozar | روگذر
⚡️ ورژن جدید تانل روگذر با نام RGT منتشر شد. ⚡️
✅ قابلیت ها :
🔸 تانل Direct و Reverse
🔸 هسته سبک و هوشمند
🔸 تانل بر پایه TCP و UDP
🔸 مصرف منابع بهینه شده
🔸 پشتیبانی از IPv6 و IPv4
🔸 مدیریت کامل تانل ( تغییر پورت تانل، پورت کانفیگ، آیپی سرور و ... بدون حذف تانل)
🔸 بالغ بر ۲۰۰۰ خط کدنویسی
🔸 کاملا ترین تانل از لحاظ امکانات
🔸 نصب و راه اندازی آسان
🔸 مناسب برای فروشندگان
🔹 لینک گیتهاب پروژه :
https://github.com/black-sec/RGT
🔹 لینک توضیحات فارسی :
https://github.com/black-sec/RGT/blob/main/README_FA.md
🔅 اگه دوست دارین این پروژه توسعه و بروزرسانی بشه, تو گیتهاب Star رو فراموش نکنین ❤️
✅ قابلیت ها :
🔸 تانل Direct و Reverse
🔸 هسته سبک و هوشمند
🔸 تانل بر پایه TCP و UDP
🔸 مصرف منابع بهینه شده
🔸 پشتیبانی از IPv6 و IPv4
🔸 مدیریت کامل تانل ( تغییر پورت تانل، پورت کانفیگ، آیپی سرور و ... بدون حذف تانل)
🔸 بالغ بر ۲۰۰۰ خط کدنویسی
🔸 کاملا ترین تانل از لحاظ امکانات
🔸 نصب و راه اندازی آسان
🔸 مناسب برای فروشندگان
🔹 لینک گیتهاب پروژه :
https://github.com/black-sec/RGT
🔹 لینک توضیحات فارسی :
https://github.com/black-sec/RGT/blob/main/README_FA.md
🔅 اگه دوست دارین این پروژه توسعه و بروزرسانی بشه, تو گیتهاب Star رو فراموش نکنین ❤️
GitHub
GitHub - black-sec/RGT: ⚡ A fast, secure, stable and high-performance Tunnel. Bypass NAT/firewalls via secure reverse and Direct…
⚡ A fast, secure, stable and high-performance Tunnel. Bypass NAT/firewalls via secure reverse and Direct tunnels - black-sec/RGT
❤17👍3
پایتون توی نسخه 3.14 داره تلاش میکنه بقیه رو برای حذف شدن GIL آماده کنه. 😅
ما که آمادهایم والا. هرچی زودتر بهتر. 🤷♂😂
ترجمه:
🧠 PEP 734 – چند مفسر در کتابخانه استاندارد (حل محدودیت GIL)
پایتون (در نسخهٔ CPython) بیش از ۲۰ ساله که قابلیت اجرای همزمان چند نسخهٔ جدا از پایتون داخل یک پروسهٔ واحد رو داره. به هرکدوم از این نسخههای جدا «interpreter» (مفسر) گفته میشه.
اما این قابلیت فقط از طریق C API قابل استفاده بود.
در نسخهٔ پایتون ۳.۱۴، این محدودیت برداشته شده و یه ماژول جدید به اسم concurrent.interpreters اضافه شده که به صورت مستقیم و از طریق پایتون میتونی از چند مفسر جدا استفاده کنی.
چرا چند مفسر؟ (مزایا)
دو دلیل مهم وجود داره که چرا چند مفسر ارزش امتحان داره:
مدل جدید و سادهتر برای همروندی (concurrency)
استفادهٔ واقعی از چند هستهٔ CPU (parallelism)
۱. مدل سادهتر برای همروندی
تو بعضی از سناریوها، استفاده از همروندی (concurrency) باعث بهینهتر شدن و سادهتر شدن برنامه میشه. اما مدیریت همروندی با چیزهایی مثل threading (که همهچیز رو باهم share میکنن) واقعاً برای مغز آدم سخت و پرریسکه.
با interpreterهای جدا و ایزوله، میتونی از مدلهایی مثل CSP یا Actor Model استفاده کنی (مدلهایی که تو زبانهایی مثل Smalltalk، Erlang، Go و Haskell جواب دادن).
انگار داری از Thread استفاده میکنی ولی بدون دردسرِ share کردن حافظه.
۲. پردازش موازی واقعی (واقعاً چند هستهای)
از پایتون ۳.۱۲ به بعد، مفسرها کاملاً از هم جدا شدن (طبق PEP 684) و حالا میتونن همزمان روی چند هستهٔ CPU اجرا بشن بدون اینکه گیر GIL باشن!
یعنی مثلاً اگه یه کار سنگین CPU داری، دیگه لازم نیست با multiprocessing کلی process جدید بزنی، میتونی با چند interpreter تو همون process موازی اجرا کنی و از تمام هستههای CPU استفاده ببری.
مقایسه با multiprocessing
multiprocessing هم ایزوله هست، ولی برای هر process کلی منابع سیستم مصرف میشه.
interpreters هم ایزوله هست، ولی سبکتر و سریعتره چون همهش تو همون process میمونه.
پس:
محدودیتهای فعلی:
راهاندازی هر interpreter هنوز بهینه نیست (کندتر از اونی که باید باشه)
هر interpreter بیشتر از حد لازم رم مصرف میکنه (قراره internal sharing بهینهتر بشه)
فعلاً راههای اشتراکگذاری داده بین interpreterها خیلی محدودن (تقریباً فقط memoryview)
بیشتر ماژولهای خارجی (PyPI) هنوز با چند interpreter سازگار نیستن (اما ماژولهای استاندارد اوکی هستن)
نوشتن برنامه با چند interpreter هنوز برای اکثر پایتونیها ناآشناست
آینده؟
این محدودیتها احتمالاً تو نسخههای آیندهٔ CPython حل میشن.
ولی همین حالا هم میشه با ماژولهای جانبی تو PyPI مثل cython، pybind11، PyO3 و... مشکلات رو پوشش داد.
ماژولهای خارجی اگه بخوان با چند interpreter کار کنن، باید «ایزوله» بشن. این کار شباهت زیادی با پشتیبانی از Free-threading (هدف آیندهٔ پایتونه برای حذف GIL) داره، پس جامعهٔ پایتون داره بهمرور همه رو آماده میکنه.
ما که آمادهایم والا. هرچی زودتر بهتر. 🤷♂😂
ترجمه:
🧠 PEP 734 – چند مفسر در کتابخانه استاندارد (حل محدودیت GIL)
پایتون (در نسخهٔ CPython) بیش از ۲۰ ساله که قابلیت اجرای همزمان چند نسخهٔ جدا از پایتون داخل یک پروسهٔ واحد رو داره. به هرکدوم از این نسخههای جدا «interpreter» (مفسر) گفته میشه.
اما این قابلیت فقط از طریق C API قابل استفاده بود.
در نسخهٔ پایتون ۳.۱۴، این محدودیت برداشته شده و یه ماژول جدید به اسم concurrent.interpreters اضافه شده که به صورت مستقیم و از طریق پایتون میتونی از چند مفسر جدا استفاده کنی.
چرا چند مفسر؟ (مزایا)
دو دلیل مهم وجود داره که چرا چند مفسر ارزش امتحان داره:
مدل جدید و سادهتر برای همروندی (concurrency)
استفادهٔ واقعی از چند هستهٔ CPU (parallelism)
۱. مدل سادهتر برای همروندی
تو بعضی از سناریوها، استفاده از همروندی (concurrency) باعث بهینهتر شدن و سادهتر شدن برنامه میشه. اما مدیریت همروندی با چیزهایی مثل threading (که همهچیز رو باهم share میکنن) واقعاً برای مغز آدم سخت و پرریسکه.
با interpreterهای جدا و ایزوله، میتونی از مدلهایی مثل CSP یا Actor Model استفاده کنی (مدلهایی که تو زبانهایی مثل Smalltalk، Erlang، Go و Haskell جواب دادن).
انگار داری از Thread استفاده میکنی ولی بدون دردسرِ share کردن حافظه.
۲. پردازش موازی واقعی (واقعاً چند هستهای)
از پایتون ۳.۱۲ به بعد، مفسرها کاملاً از هم جدا شدن (طبق PEP 684) و حالا میتونن همزمان روی چند هستهٔ CPU اجرا بشن بدون اینکه گیر GIL باشن!
یعنی مثلاً اگه یه کار سنگین CPU داری، دیگه لازم نیست با multiprocessing کلی process جدید بزنی، میتونی با چند interpreter تو همون process موازی اجرا کنی و از تمام هستههای CPU استفاده ببری.
مقایسه با multiprocessing
multiprocessing هم ایزوله هست، ولی برای هر process کلی منابع سیستم مصرف میشه.
interpreters هم ایزوله هست، ولی سبکتر و سریعتره چون همهش تو همون process میمونه.
پس:
interpreter = ایزولاسیون process + کارایی thread
محدودیتهای فعلی:
راهاندازی هر interpreter هنوز بهینه نیست (کندتر از اونی که باید باشه)
هر interpreter بیشتر از حد لازم رم مصرف میکنه (قراره internal sharing بهینهتر بشه)
فعلاً راههای اشتراکگذاری داده بین interpreterها خیلی محدودن (تقریباً فقط memoryview)
بیشتر ماژولهای خارجی (PyPI) هنوز با چند interpreter سازگار نیستن (اما ماژولهای استاندارد اوکی هستن)
نوشتن برنامه با چند interpreter هنوز برای اکثر پایتونیها ناآشناست
آینده؟
این محدودیتها احتمالاً تو نسخههای آیندهٔ CPython حل میشن.
ولی همین حالا هم میشه با ماژولهای جانبی تو PyPI مثل cython، pybind11، PyO3 و... مشکلات رو پوشش داد.
ماژولهای خارجی اگه بخوان با چند interpreter کار کنن، باید «ایزوله» بشن. این کار شباهت زیادی با پشتیبانی از Free-threading (هدف آیندهٔ پایتونه برای حذف GIL) داره، پس جامعهٔ پایتون داره بهمرور همه رو آماده میکنه.
⚡7❤5