notcurses v1.4.1 منتشر شده است - کتابخانه ای برای رابط های متنی مدرن


notcurses v1.4.1 منتشر شده است - کتابخانه ای برای رابط های متنی مدرن

نسخه جدیدی از کتابخانه notcurses v1.4.x منتشر شد "حماسه ادامه دارد! وو تانگ! وو تانگ!»

Notcurses یک کتابخانه TUI برای شبیه سازهای ترمینال مدرن است. ترجمه تحت اللفظی - نه نفرین. این به زبان C با استفاده از هدرهای ایمن C++ نوشته شده است. لفاف های موجود برای زنگ, ++C и پــایتــون.

چیست: کتابخانه ای که TUI های پیچیده را در شبیه سازهای ترمینال مدرن ساده می کند و حداکثر از رنگ های روشن و یونیکد پشتیبانی می کند. بسیاری از وظایف محول شده به نفرین ها را می توان با استفاده از notcurses انجام داد (و بالعکس).

چه چیزی نیست: یک پیاده سازی سازگار از نفرین های X/Open یا جایگزینی برای ncurses در سیستم های موجود.

Notcurses API X/Open Curses ارائه شده به عنوان بخشی از مشخصات یونیکس واحد را منسوخ می کند. این مشخصات برای مدت طولانی منسوخ شده است و به عنوان مثال، از عملکرد ترمینال مانند رنگ 24 بیتی غیر نمایه شده پشتیبانی نمی کند. به این ترتیب، notcurses جایگزین نفرین نیست. این کمتر قابل حمل است، و قطعا بر روی سخت افزار کمتر تست شده است.
هر زمان که امکان پذیر باشد، notcurses از کتابخانه terminfo ارائه شده با ncurses استفاده می کند و از قابلیت حمل آن بسیار سود می برد.
Notcurses عملکرد پیشرفته ای را برای تعامل با کاربران در ایستگاه های کاری، تلفن ها، لپ تاپ ها و تبلت ها باز می کند.

چرا از این کتابخانه غیر استاندارد استفاده کنیم؟

  • ایمنی نخ و استفاده کارآمد در برنامه های چند رشته ای از همان ابتدا مورد توجه طراحی بوده است.

  • API با فرمت بهتر در مقایسه با X/Open:

    • شناسه های صادر شده برای جلوگیری از برخورد فضای نام پیشوند دارند.

    • فایل شی کتابخانه حداقل مجموعه ای از کاراکترها را صادر می کند. در صورت عملی، کد استاتیک فقط برای هدر خط استفاده می شود. این امر بهینه سازی کامپایلر را آسان تر می کند و زمان بارگذاری را کاهش می دهد.

  • همه APIها به صورت بومی از مجموعه کاراکترهای جهانی (یونیکد) پشتیبانی می کنند. API سلول بر اساس این مفهوم است خوشه گرافیکی توسعه یافته یونیکد.

  • ویژگی های بصری از جمله تصاویر، فونت ها، فیلم ها، متن با کنتراست بالا، sprites و مناطق شفاف. همه API ها به صورت بومی از رنگ 24 بیتی پشتیبانی می کنند که در صورت نیاز توسط ترمینال کوانتیزه می شوند.

  • مجوز Apache2، بر خلاف نمایش در چندین عمل، که مجوز ncurses است (مورد دوم به عنوان "تجدید فرمول MIT-X11" خلاصه می شود).

از زمان انتشار قابل توجه قبلی 1.1.0، تعداد زیادی ویژگی اضافه شده است. تغییرات اصلی:

  • ویجت خواندن برای وارد کردن رشته‌های آزاد مرتبط با رشته‌های خواندن

  • ویجت فرعی برای ایجاد یک زیرفرآیند، مدیریت آن و پخش نتایج آن.

  • لینوکس 5.3+ از مکانیسم جدید clone3+pidfd برای مدیریت فرآیندها بدون شرط مسابقه استفاده می کند.

  • ویجت Fdplane برای استریم یک توصیفگر فایل دلخواه به صفحه (که فرآیند فرعی بر روی آن ساخته شده است). هر دوی اینها به تماس‌ها اجازه می‌دهند تا متن را سبک یا به‌طور دیگری دستکاری کنند.

  • چرخش هواپیماها و جلوه های بصری. بارگیری تصاویر از حافظه تصادفی RGBA/BGRx blitting.

  • منو را می توان در هر دو (یا هر دو) صفحه بالا و پایین قرار داد.

  • پیشرفت های بزرگ در حالت Direct.

  • چند پر، گرادیان و متن با کنتراست بالا.

  • تتریس را به عنوان مثال اضافه کرد.

  • بسته‌بندی‌های C++ Marek Habersack اکنون توانایی پرتاب استثناها (در صورت نیاز) را دارند.

  • Python و Rust FFI به روز و آزمایش شدند.

نسخه ی نمایشی ویدیویی با نظرات نویسنده
کتاب «هک سیاره! با Notcourses" از نویسنده

منبع: linux.org.ru

اضافه کردن نظر