Forwarded from کدنویس یکروزه (𝕻𝖊𝖉𝖗𝖆𝖒 𝕽𝖆𝖍𝖎𝖒𝖎)
حذف فایل در حالت غیر قابل بازیابی!
حتماً میدونین که به زبان ساده بعد از دیلیت کردن یک فایل در واقع محتوای اون نیست که پاک میشه. بلکه نام و آدرس اون فایل در جدول تخصیص فایل یا FAT پاک میشه و برای همین شما دیگه اونو روی دیسک نمی بینید. ولی معلومه که محتوای اون هنوز سرجاشه و برنامه های ریکاوری میرم پیداش می کنن.
خوب برای همینه که
میگن برای ریکاوری دیگه چیزی روی اون دیسک کپی نکنید تا محتوا خراب نشه.
اما اگه بخواهیم هارد رو بفروشیم چی؟ میریم با حالت زیرو فورمت به صورت Wipe خونه به خونهی دیسک رو خونده و پاک می کنیم! یه کار کلی و طولانی.
اما اگه فقط یه فایل رو بخواهیم جوری پاک کنیم که قابل بازیابی نباشه چی؟ اینجاست که به کمک دستور جدید SDelete یا سکیور دیلیت میریم توی کارش! البته باید سرچ و دانلودش کنید.
در راهنمای این دستور سوئیچ هایی هم ساخته شدن که چند بار جای فایل مورد نظر شما رو میشه بازنویسی کرد. مثلاً میشه بهش گفت پنج بار اونجا بنویس که دیگه فلک هم نتونه بازیابیش کنه!
https://learn.microsoft.com/en-us/sysinternals/downloads/sdelete
حتماً میدونین که به زبان ساده بعد از دیلیت کردن یک فایل در واقع محتوای اون نیست که پاک میشه. بلکه نام و آدرس اون فایل در جدول تخصیص فایل یا FAT پاک میشه و برای همین شما دیگه اونو روی دیسک نمی بینید. ولی معلومه که محتوای اون هنوز سرجاشه و برنامه های ریکاوری میرم پیداش می کنن.
خوب برای همینه که
میگن برای ریکاوری دیگه چیزی روی اون دیسک کپی نکنید تا محتوا خراب نشه.
اما اگه بخواهیم هارد رو بفروشیم چی؟ میریم با حالت زیرو فورمت به صورت Wipe خونه به خونهی دیسک رو خونده و پاک می کنیم! یه کار کلی و طولانی.
اما اگه فقط یه فایل رو بخواهیم جوری پاک کنیم که قابل بازیابی نباشه چی؟ اینجاست که به کمک دستور جدید SDelete یا سکیور دیلیت میریم توی کارش! البته باید سرچ و دانلودش کنید.
در راهنمای این دستور سوئیچ هایی هم ساخته شدن که چند بار جای فایل مورد نظر شما رو میشه بازنویسی کرد. مثلاً میشه بهش گفت پنج بار اونجا بنویس که دیگه فلک هم نتونه بازیابیش کنه!
https://learn.microsoft.com/en-us/sysinternals/downloads/sdelete
Docs
SDelete - Sysinternals
Securely overwrite your sensitive files and cleanse your free space of previously deleted files using this DoD-compliant secure delete program.
Forwarded from Ninja Learn | نینجا لرن
Learning Go 2024 494pages.pdf
4.7 MB
Forwarded from محتوای آزاد سهراب
خب یک اکانت ماستادون بیکار داشتم، کانال رو وصل کردم بهش.
این پیام هم صرفاً برای اینه که ببینم پستهارو میفرسته یا نه :)))
#موقت
این پیام هم صرفاً برای اینه که ببینم پستهارو میفرسته یا نه :)))
#موقت
Forwarded from محتوای آزاد سهراب
این حسابم توی ماستادون بیکار بود، وصلش کردم به تلگرام
tilde.zone/@sohrabbehdani
اگر دوست داشتید میتونید از ماستادون دنبال کنید و محتوای کانال رو داشته باشید :)
@SohrabContents
tilde.zone/@sohrabbehdani
اگر دوست داشتید میتونید از ماستادون دنبال کنید و محتوای کانال رو داشته باشید :)
@SohrabContents
Forwarded from محتوای آزاد سهراب
خب.... داشتم با خودم فکر میکردم و به این نتیجه رسیدم که بهتره تنبلی رو کنار بذارم و یک سری بلاگ جدید شروع کنم.
از اونجایی که فریسایبورگ دم دستم بود، توش یک بلاگ جدید تحت عنوان «ماجراهای من و پارچ» ساختم.
قسمت اولش رو از اینجا میتونید بخونید.
مشتاقم نظرتون رو درموردش بدونم.
@SohrabContents
از اونجایی که فریسایبورگ دم دستم بود، توش یک بلاگ جدید تحت عنوان «ماجراهای من و پارچ» ساختم.
قسمت اولش رو از اینجا میتونید بخونید.
مشتاقم نظرتون رو درموردش بدونم.
@SohrabContents
Forwarded from Amir Javadzadeh
📥 همین حالا با بهترین قیمت سفارش بدید و لذت ببرید!
https://news.1rj.ru/str/+5oRjygJv4y0xOTFk
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 یه کتابی به نام مدیریت خانواده و سبک زندگی (ویژه دختران و پسران) برای مدرسه متوسطه منتشر کردند که دانش آموزان از آن منتفر هستند!
داستانش که شما می دونید دیگه ...
@TheRaymondDev
داستانش که شما می دونید دیگه ...
@TheRaymondDev
Forwarded from محتوای آزاد سهراب
این یکی از جوکهای بامزه سایت گنو هستش:
ترجمه:
توضیح:
عدد ۱۰ در باینری (دودویی) برابر با ۲ و در ترینری(سهگانه) برابر با ۳ است.
بزارید بازش کنم:
جفت این جوکها از بازی با اعداد و سیستمهای عددی استفاده میکنن، و بخش بامزهاش در تفسیر اشتباه یا غیرمنتظره اعداد در سیستمهای مختلفه:
۱. جوک دودویی (Binary):
در سیستم عددی دودویی (که فقط از ارقام ۰ و ۱ استفاده میشه)، عدد "۱۰" معادل عدد "۲" در سیستم دهدهی هستش. بنابراین وقتی میگه که «دو نوع آدم وجود دارند»، خودش با ظاهر تناقضآمیز جمله (۱۰ = دو) باعث خنده میشه، چون کسی که دودویی را نمیفهمه، منطقاً این جمله رو هم اشتباه متوجه میشه.
۲. جوک سهگانه (Trinary):
در اینجا از سیستم سهگانه (ترینری) استفاده میشود که ارقام آن ۰، ۱ و ۲ هستند. عدد "۱۰" در ترینری معادل "سه" در سیستم دهدهی هستش. این بار شوخی در اینه که علاوه بر افرادی که ترینری را میفهمند یا نمیفهمند، گروه سومی هم اضافه شدن که ترینری را با دودویی اشتباه میگیرن و دوباره گیج میشن :))))
#fun
@SohrabContents
There are 10 kinds of people in the world — those who understand binary and those who don't.
There are 10 kinds of people in the world — those who understand trinary, those who don't understand trinary and those who mistake it for binary.
ترجمه:
دو نوع آدم تو دنیا وجود دارند: کسانی که دودویی را میفهمند و کسانی که نمیفهمند.
سه نوع آدم تو دنیا وجود دارند: کسانی که سهگانه را میفهمند، کسانی که سهگانه را نمیفهمند و کسانی که آن را با دودویی اشتباه میگیرند.
توضیح:
بزارید بازش کنم:
جفت این جوکها از بازی با اعداد و سیستمهای عددی استفاده میکنن، و بخش بامزهاش در تفسیر اشتباه یا غیرمنتظره اعداد در سیستمهای مختلفه:
۱. جوک دودویی (Binary):
در سیستم عددی دودویی (که فقط از ارقام ۰ و ۱ استفاده میشه)، عدد "۱۰" معادل عدد "۲" در سیستم دهدهی هستش. بنابراین وقتی میگه که «دو نوع آدم وجود دارند»، خودش با ظاهر تناقضآمیز جمله (۱۰ = دو) باعث خنده میشه، چون کسی که دودویی را نمیفهمه، منطقاً این جمله رو هم اشتباه متوجه میشه.
۲. جوک سهگانه (Trinary):
در اینجا از سیستم سهگانه (ترینری) استفاده میشود که ارقام آن ۰، ۱ و ۲ هستند. عدد "۱۰" در ترینری معادل "سه" در سیستم دهدهی هستش. این بار شوخی در اینه که علاوه بر افرادی که ترینری را میفهمند یا نمیفهمند، گروه سومی هم اضافه شدن که ترینری را با دودویی اشتباه میگیرن و دوباره گیج میشن :))))
#fun
@SohrabContents
Forwarded from Agora (Alireza Azadi)
از موقعی که اولین بار تو کانال راجعبه io_uring صحبت کردم و بهونهای شد که بیشتر راجعبهش بخونم، هرجا که یه چیزی راجعبه سیستمها میخونم میبینم که پاش وسطه. این پست کوتاه هم باز راجعبه همین ماجراست و اگر علاقهمندین میتونه براتون جالب باشه:
https://lewiscampbell.tech/blog/250104.html
https://lewiscampbell.tech/blog/250104.html
lewiscampbell.tech
Do Files want to be Actors?
Is 1970s distributed systems theory finally meeting 2020s kernel development?
Forwarded from Agora (Alireza Azadi)
برای کسایی که مثل من از برنامهنویسی سیستمی خوششون میاد، چند وقت پیش بود و نمیدونم کجا که چشمم خورد به کارهایی که ابوالفضل میکنه تو این زمینه. چند روز پیش هم بود که کانالش رو دیدم و از چند نظر خیلی برام جالب بود. هم خیلی باحوصله پروژههایی که داره پیش میبره و توضیح میده و آپدیتهاش رو به اشتراک میذاره، هم چیزهایی که میخونه رو به زبون خودش میاد شرح میده. این شکل تولید محتواش و هم علاقهمندیهاش که با من علاقهمندی های من همپوشانی داره باعث شد که خیلی برام جذاب باشه. خلاصه گفتم که اینجا هم معرفی کنم. برای اهلش حتماً جذاب خواهد بود
An Inspired Engineer
An Inspired Engineer
Telegram
An Inspired Engineer
در باب io uring
حین اینکه Vortex رو توسعه میدادم دیدم که چقدر io_uring بزرگ و عمیقه، داکیومنت موال در موردش اونقدر غنی نبود و یا خیلی پراکنده بود، پس یه پروژهی جدید رو شروع کردم به اسم io-uring-lab. تمرکزش روی بررسی و پیادهسازی مکانیزم io_uring توی لینوکسه،…
حین اینکه Vortex رو توسعه میدادم دیدم که چقدر io_uring بزرگ و عمیقه، داکیومنت موال در موردش اونقدر غنی نبود و یا خیلی پراکنده بود، پس یه پروژهی جدید رو شروع کردم به اسم io-uring-lab. تمرکزش روی بررسی و پیادهسازی مکانیزم io_uring توی لینوکسه،…
Forwarded from SoniaCircuit (Sony @sonylibre:matrix.org)
Why is PS3 emulation so fast: RPCS3 optimizations explained
https://youtu.be/19ae5Mq2lJE
شاید براتون جالب باشه که این شبیه ساز با LLVM چطور بهینه سازی رو انجام میده و از چه متود های دیگری برای تفسیر و تبدیلش به کد x86 استفاده میکنه.
رفرنس هایی که باعث میشه درک بهتری از معماری PS3 و شبیه ساز RPCS3 داشته باشین که حتی یه ارتباط خیلی مستقیمی به درک معماری های cpu و پرتکول هایی که ازش استفاده میشه داره :
https://www.copetti.org/writings/consoles/playstation-3/
https://whatcookie.github.io/posts/why-is-avx-512-useful-for-rpcs3/
https://en.wikipedia.org/wiki/Power_Processing_Element
https://arcb.csc.ncsu.edu/~mueller/cluster/ps3/SDK3.0/docs/accessibility/sdkpt/cbet_3synpu.html
https://en.wikipedia.org/wiki/SIMD
https://www.felixcloutier.com/x86/pshufb
https://gist.github.com/animetosho/d3ca95da2131b5813e16b5bb1b137ca0
https://en.wikipedia.org/wiki/AVX-512
https://en.wikipedia.org/wiki/Static_random-access_memory
#emulation
#sony_playstation
https://youtu.be/19ae5Mq2lJE
شاید براتون جالب باشه که این شبیه ساز با LLVM چطور بهینه سازی رو انجام میده و از چه متود های دیگری برای تفسیر و تبدیلش به کد x86 استفاده میکنه.
رفرنس هایی که باعث میشه درک بهتری از معماری PS3 و شبیه ساز RPCS3 داشته باشین که حتی یه ارتباط خیلی مستقیمی به درک معماری های cpu و پرتکول هایی که ازش استفاده میشه داره :
https://www.copetti.org/writings/consoles/playstation-3/
https://whatcookie.github.io/posts/why-is-avx-512-useful-for-rpcs3/
https://en.wikipedia.org/wiki/Power_Processing_Element
https://arcb.csc.ncsu.edu/~mueller/cluster/ps3/SDK3.0/docs/accessibility/sdkpt/cbet_3synpu.html
https://en.wikipedia.org/wiki/SIMD
https://www.felixcloutier.com/x86/pshufb
https://gist.github.com/animetosho/d3ca95da2131b5813e16b5bb1b137ca0
https://en.wikipedia.org/wiki/AVX-512
https://en.wikipedia.org/wiki/Static_random-access_memory
#emulation
#sony_playstation
YouTube
Why is PS3 emulation so fast: RPCS3 optimizations explained
In this video I explain why PS3 emulation is so fast, and I definitely don't spend half of the video gushing over x86 instructions.
I sort of made this video as a response to all the videos with a noscript along the lines of "why is the PS3 hard to emulate"…
I sort of made this video as a response to all the videos with a noscript along the lines of "why is the PS3 hard to emulate"…
Forwarded from DevTwitter | توییت برنامه نویسی
دنبال یه پروژه قدیمی تو گیت هاب میگشتم که یه پروژه خیلی قدیمی تر پیدا کردم.
پروژه درس دیتابیس :)
۱۰ سال قبل :)
۱۰ سال گذشت :)
من و مرجان از بچه های دانشکده هم تیمی بودیم اون موقع.
آف کورس که مهاجرت کردیم :)
چه تمیز هم php براش نوشتیم :)
https://github.com/SaeedNajafi/DB-Project
@DevTwitter | <Saeed/>
پروژه درس دیتابیس :)
۱۰ سال قبل :)
۱۰ سال گذشت :)
من و مرجان از بچه های دانشکده هم تیمی بودیم اون موقع.
آف کورس که مهاجرت کردیم :)
چه تمیز هم php براش نوشتیم :)
https://github.com/SaeedNajafi/DB-Project
@DevTwitter | <Saeed/>
Forwarded from 🎄 یک برنامه نویس تنبل ( MΞ)
This media is not supported in your browser
VIEW IN TELEGRAM
🔸mitmproxy2swagger
این ابزار بهتون یه پروکسی میده اونو ست میکنید توی گوشی-مرورگر-... و به هرجایی برید ریکوئستای اونو کپچر میکنه و در اخر تبدیلش میکنه به swagger که راحتتر کار کنید
برای پنتسترها و وب اسکرپرها این یه نعمته
https://github.com/alufers/mitmproxy2swagger
#معرفی
@TheRaymondDev
این ابزار بهتون یه پروکسی میده اونو ست میکنید توی گوشی-مرورگر-... و به هرجایی برید ریکوئستای اونو کپچر میکنه و در اخر تبدیلش میکنه به swagger که راحتتر کار کنید
برای پنتسترها و وب اسکرپرها این یه نعمته
https://github.com/alufers/mitmproxy2swagger
#معرفی
@TheRaymondDev
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
❌روی گوشی اندورید مجبوری برنامه ناامن نصب کنی؟
🚫دسترسی غیر مجاز به Contacts یا فایل های گوشی میخواهند 😱
✅نمیخواهی دسترسی بدهی؟ نگران حریم خصوصی خودت و امنیتت هستی؟
🔥نرم افزار های insular یا Shelter (github) راه حل مسئله اند ✌🏻
شبیه به secure folder سامسونگ
🗓سند باکس چیه؟
✅برنامه island یک سندباکس در اندروید میسازه
در محیط سندباکس island همه چیز، جدا و ایزوله از اطلاعات و محتوای گوشی شما است
💠 کانتکت لیست جدید و خالی ،فایل منیجر و فضای داخلی و مموری کارت جدا
کروم و پلی استور ، موقعیت مکانی و ... 😎
اگر در گوشی فیلترشکن روشن کنید
🗓 برنامه هایی که در سندباکس island اجرا شدن، اینترنت بدون فیلتر شکن دارن
امکان تانل بین دو محیط وجود داره
نصب از گوگل پلی
آدرس سایت
گیت هاب Apache-2.0 license
❤️ ممنون از حمایت هاتون 💐🌺
🚫دسترسی غیر مجاز به Contacts یا فایل های گوشی میخواهند 😱
✅نمیخواهی دسترسی بدهی؟ نگران حریم خصوصی خودت و امنیتت هستی؟
🔥نرم افزار های insular یا Shelter (github) راه حل مسئله اند ✌🏻
شبیه به secure folder سامسونگ
🗓سند باکس چیه؟
در امنیت جعبهٔ شنی (Sandbox) یک سازوکار حفاظتی برای جدا نگاهداشتن بعضی نرمافزارهای در حال اجرا در آن واحد با دیگر نرمافزارهاست، و اغلب برای اجرای کدهای تست نشده یا برنامه یا باز کردن وبسایت های غیرقابل اعتماد مورد استفاده قرار میگیرد، تا خطرات احتمالی سیستمعامل یا میزبان را تهدید نکند.
✅برنامه island یک سندباکس در اندروید میسازه
در محیط سندباکس island همه چیز، جدا و ایزوله از اطلاعات و محتوای گوشی شما است
💠 کانتکت لیست جدید و خالی ،فایل منیجر و فضای داخلی و مموری کارت جدا
کروم و پلی استور ، موقعیت مکانی و ... 😎
اگر در گوشی فیلترشکن روشن کنید
🗓 برنامه هایی که در سندباکس island اجرا شدن، اینترنت بدون فیلتر شکن دارن
امکان تانل بین دو محیط وجود داره
نصب از گوگل پلی
آدرس سایت
گیت هاب Apache-2.0 license
❤️ ممنون از حمایت هاتون 💐🌺
Forwarded from DevTwitter | توییت برنامه نویسی
یه برنامه برای ساخت میکروسرویسها با رویکرد Domain-Driven Design (DDD) توسعه دادم؛
و خوشحال میشم که بهتون معرفیش کنم و نظرتون رو راجبش بدونم چون بهم کمک میکنه توی ادامه توسعش دقیق تر نیازهای برنامه نویسا رو بدونم.
این پروژه کاملا اوپن سورس ارائه میشه و همینطور:
با ساختار تمیز و قابل فهم، توسعه پروژهها رو سریعتر و لذتبخشتر میکنه.
با استفاده از فایلهای محیطی (environments)، به راحتی میتونید تنظیمات پروژهتون رو مدیریت کنید.
۱. نصب:
۲. نمونهها: برای دیدن مثالهای کامل و سناریوهای واقعی، به فولدر example در گیتهاب برین.
من خوشحال میشم اگر نظراتتون رو با من به اشتراک بذارید. اگر هم علاقهمند به همکاری هستید، باعث افتخاره که بتونیم از تجربه های شما هم توی این پروژه استفاده کنیم؛ از طریق ایجاد issue توی repository میتونین با من در ارتباط باشین.
و یا برای استفاده شخصیتون میتونید پروژه رو clone کنید و هرطور که دوست داشتید زیرساختش رو هم تغییر بدید, و یا هم طبق ساختار آماده شده جلو برین.
لینکها:
NPM: https://www.npmjs.com/package/hex-micro
GITHUB: https://github.com/Tariux/HEX
@DevTwitter | <madman/>
و خوشحال میشم که بهتون معرفیش کنم و نظرتون رو راجبش بدونم چون بهم کمک میکنه توی ادامه توسعش دقیق تر نیازهای برنامه نویسا رو بدونم.
این پروژه کاملا اوپن سورس ارائه میشه و همینطور:
با ساختار تمیز و قابل فهم، توسعه پروژهها رو سریعتر و لذتبخشتر میکنه.
با استفاده از فایلهای محیطی (environments)، به راحتی میتونید تنظیمات پروژهتون رو مدیریت کنید.
۱. نصب:
npm install hex-micro۲. نمونهها: برای دیدن مثالهای کامل و سناریوهای واقعی، به فولدر example در گیتهاب برین.
من خوشحال میشم اگر نظراتتون رو با من به اشتراک بذارید. اگر هم علاقهمند به همکاری هستید، باعث افتخاره که بتونیم از تجربه های شما هم توی این پروژه استفاده کنیم؛ از طریق ایجاد issue توی repository میتونین با من در ارتباط باشین.
و یا برای استفاده شخصیتون میتونید پروژه رو clone کنید و هرطور که دوست داشتید زیرساختش رو هم تغییر بدید, و یا هم طبق ساختار آماده شده جلو برین.
لینکها:
NPM: https://www.npmjs.com/package/hex-micro
GITHUB: https://github.com/Tariux/HEX
@DevTwitter | <madman/>
Forwarded from CleverDevs (Mammad)
یکی دیگه از بخشای جالب Bash حلقه هاشه . توی بش یه حلقه until هم داریم که خیلی شبیه به while هست با یه تفاوت کوچیک ، توی while حلقه تا زمانی که شرطمون درسته اجرا میشه و به محض اینکه شرطمون نقض بشه تموم میشه
مثلا تو کد زیر تا زمانی که متغیرمون از 5 کوچیکتر هست شرط درسته و حلقه اجرا میشه
ولی unitl برعکسه تا وقتی شرط اشتباهه حلقه اجرا میشه و به محض اینکه شرط حلقه درست بشه استپ میشه
مثلا تو کد زیر تا زمانی که شرط حلقه اشتباهه حلقه اجرا میشه ولی به محض اینکه شرط درست میشه حلقه متوقف میشه
البته با معکوس کردن شرط while کار همون until رو میکنه ولی در کل حلقه جالبی بود
#bash
@CleverDevs - @CleverDevsGp
مثلا تو کد زیر تا زمانی که متغیرمون از 5 کوچیکتر هست شرط درسته و حلقه اجرا میشه
i=1
while [[ $i -lt 5 ]]; do
echo "CleverDevs";
let i++
done
ولی unitl برعکسه تا وقتی شرط اشتباهه حلقه اجرا میشه و به محض اینکه شرط حلقه درست بشه استپ میشه
مثلا تو کد زیر تا زمانی که شرط حلقه اشتباهه حلقه اجرا میشه ولی به محض اینکه شرط درست میشه حلقه متوقف میشه
i=1
until [[ $i -gt 5 ]]; do
echo "CleverDevs";
let i++
done
البته با معکوس کردن شرط while کار همون until رو میکنه ولی در کل حلقه جالبی بود
#bash
@CleverDevs - @CleverDevsGp
Forwarded from Ninja Learn | نینجا لرن
⚡️ خب خب خب starlette چیست؟ ⚡️
ـStarlette یکی از فریمورکهای عالی برای ساخت اپلیکیشنهای وب در پایتونه که به طور خاص برای پردازش درخواستها به صورت غیرهمزمان (async) ساخته شده. این فریمورک با استفاده از ASGI (Asynchronous Server Gateway Interface)
سرعت و کارایی بالایی رو به ما میده.
یکی از ویژگیهای خوب Starlette اینه که خیلی سبک و کمحجم هست، به طوری که میتونید به راحتی ازش برای ساخت سرویسها و API های پیچیده استفاده کنید بدون اینکه بخواید با پیچیدگیهای اضافی روبهرو بشید. 🚀
پشت صحنهی Starlette 🎬
ـASGI:
سبک بودن:
ـStarlette به شدت مینیمال طراحی شده و چیز اضافی توش نیست که بخواد سرعت رو پایین بیاره. به همین خاطر به راحتی میتونید اپلیکیشنهایی با کارایی بالا بسازید.
پشتیبانی از async:
استفاده از async و await برای پردازش درخواستها بصورت همزمان باعث میشه تا اپلیکیشن شما بدون هیچ کندی درخواستها رو پردازش کنه. این یه ویژگی خیلی مهم برای اپلیکیشنهایی هست که نیاز به سرعت بالا دارن.
ـUvicorn:
ـ Uvicorn باعث میشه که اپلیکیشنها با کمترین تأخیر و بیشترین کارایی اجرا بشن.
پشتیبانی از WebSocket:
ـStarlette از WebSocket به خوبی پشتیبانی میکنه که باعث میشه اپلیکیشنهای real time سریع و کارآمد اجرا بشن.
ویژگیهای کاربردی Starlette 🛠️
ـWebSocket:
ـBackground Tasks:
ـMiddleware قدرتمند:
ـRouting منعطف:
و...
چرا starllete باعث سرعت Fastapi میشه؟ 🔄
در حقیقت، FastAPI یه فریمورک مبتنی بر Starlette هست که ویژگیهایی مثل Pydantic برای اعتبارسنجی و OpenAPI برای مستندسازی خودکار APIها و... موارد دیگه رو اضافه کرده. بنابراین، FastAPI از Starlette استفاده میکنه.
پس الان کاملا براتون واضح هست که چرا Fastapi سریع هست
نمونه کد ساده از Starlette 🖥️
برای اجرای اپلیکیشن:
اینم سایت خود starllette
شیرو و ریکشن فراموش نشه ❤️
➖➖➖➖➖➖➖➖➖
ـStarlette یکی از فریمورکهای عالی برای ساخت اپلیکیشنهای وب در پایتونه که به طور خاص برای پردازش درخواستها به صورت غیرهمزمان (async) ساخته شده. این فریمورک با استفاده از ASGI (Asynchronous Server Gateway Interface)
سرعت و کارایی بالایی رو به ما میده.
یکی از ویژگیهای خوب Starlette اینه که خیلی سبک و کمحجم هست، به طوری که میتونید به راحتی ازش برای ساخت سرویسها و API های پیچیده استفاده کنید بدون اینکه بخواید با پیچیدگیهای اضافی روبهرو بشید. 🚀
پشت صحنهی Starlette 🎬
ـASGI:
ـStarlette از ASGI به جای WSGI استفاده میکنه. این تغییر باعث میشه که تو بتونی درخواستها رو به صورت همزمان پردازش کنی و کارایی بهتری داشته باشی، مخصوصاً در مواقعی که نیاز به پردازشهای طولانی یا مولتی تسک داری.ـNon-blocking I/O:
با non-blocking I/O درخواستو عملیات ها منتظر نمیمونن. این یعنی که هر درخواست به سرعت پردازش میشه و سیستم هیچوقت از کار نمیافته.ـEvent-driven:
ـStarlette معماری event-driven داره، به این معنی که هیچ عملیات غیرضروری انجام نمیده. فقط وقتی که یه اتفاقی بیفته، کاری انجام میده، که باعث میشه سرعت پردازش بالاتر بره.ـMiddleware:
ـStarlette کاملاً روی middleware ها بنا شده که میتونید به راحتی ویژگیهایی مثل لاگینگ، احراز هویت، یا مدیریت خطاها رو به برنامه اضافه کنید.ـUvicorn:
معمولا از Uvicorn برای راهاندازی اپلیکیشن استفاده میشه که یه سرور ASGI خیلی سریع و سبک هست. این باعث میشه که اپلیکیشن شما به راحتی به HTTP/2 و WebSocket متصل بشه.چرا Starlette سریعتره؟ 💨
سبک بودن:
ـStarlette به شدت مینیمال طراحی شده و چیز اضافی توش نیست که بخواد سرعت رو پایین بیاره. به همین خاطر به راحتی میتونید اپلیکیشنهایی با کارایی بالا بسازید.
پشتیبانی از async:
استفاده از async و await برای پردازش درخواستها بصورت همزمان باعث میشه تا اپلیکیشن شما بدون هیچ کندی درخواستها رو پردازش کنه. این یه ویژگی خیلی مهم برای اپلیکیشنهایی هست که نیاز به سرعت بالا دارن.
ـUvicorn:
ـ Uvicorn باعث میشه که اپلیکیشنها با کمترین تأخیر و بیشترین کارایی اجرا بشن.
پشتیبانی از WebSocket:
ـStarlette از WebSocket به خوبی پشتیبانی میکنه که باعث میشه اپلیکیشنهای real time سریع و کارآمد اجرا بشن.
ویژگیهای کاربردی Starlette 🛠️
ـWebSocket:
پشتیبانی از WebSocket برای اپلیکیشنهای realt time مثل چت یا نوتیفیکیشنهای زنده.
ـBackground Tasks:
امکان اجرای کارهای پسزمینهای مثل ارسال ایمیل یا پردازش دادهها بدون معطلی کاربر.
ـMiddleware قدرتمند:
میتونید به راحتی هر middleware دلخواهی رو برای احراز هویت، لاگینگ و موارد دیگه اضافه کنید.
ـRouting منعطف:
مسیرهای URL رو میتونید به صورت خیلی دقیق و منعطف تعریف کنید.
و...
چرا starllete باعث سرعت Fastapi میشه؟ 🔄
در حقیقت، FastAPI یه فریمورک مبتنی بر Starlette هست که ویژگیهایی مثل Pydantic برای اعتبارسنجی و OpenAPI برای مستندسازی خودکار APIها و... موارد دیگه رو اضافه کرده. بنابراین، FastAPI از Starlette استفاده میکنه.
پس الان کاملا براتون واضح هست که چرا Fastapi سریع هست
نمونه کد ساده از Starlette 🖥️
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route
async def homepage(request):
return JSONResponse({'message': 'Hello, Starlette!'})
routes = [
Route("/", endpoint=homepage)
]
app = Starlette(debug=True, routes=routes)
برای اجرای اپلیکیشن:
uvicorn app:app --reload
اینم سایت خود starllette
https://www.starlette.io/
شیرو و ریکشن فراموش نشه ❤️
#programming #fastapi #web
➖➖➖➖➖➖➖➖➖
🔆 CHANNEL | GROUP