گزارش Q4 اکوسیستم Actix از بیش از ۱۰۰ انتشار crate خبر میدهد که قابلیتهای تازه، اصلاحات امنیتی و بهبود عملکرد و مصرف منابع را در بر میگیرند. پشتیبانی از HTTP QUERY، تغییر رفتار پیشفرض اتصالها و انعطاف بیشتر در ارائه فایلهای static از محورهای این گزارش هستند.
در Actix Web، متد HTTP QUERY هم در macroهای route و هم در تعریف دستی route پشتیبانی میشود. برای تعریف handler میتوان از #[query] یا web::query() استفاده کرد؛ متدهای متناظر در awc نیز پشتیبانی سمت client را تکمیل میکنند. گزارش، Actix Web را نخستین framework جریان اصلی معرفی میکند که این متد را بهصورت یک قابلیت اصلی پشتیبانی میکند.
برای middleware نیز Error::add_response_mapper() اضافه شده است. این API اجازه میدهد پاسخهای تولیدشده از خطا، پیش از رسیدن به client تغییر کنند. middleware مربوط به CORS همین حالا از آن برای رفع یک bug قدیمی استفاده میکند.
ارائه فایلهای static هم تغییر کرده است: Files::new() اکنون چند مسیر ریشه را میپذیرد و Files::try_compressed() امکان ارائه فایلهای ازپیشفشردهشده را فراهم میکند. درخواستهای Range، پاسخهای شرطی و ETag در Windows نیز اصلاحاتی دریافت کردهاند.
در بخش منابع، گزارش از کاهش مصرف حافظه تا حدود ۹۹ درصد برای بعضی workloadها خبر میدهد؛ این عدد به همه کاربردها تعمیم داده نشده است. اتصالهای بیکار حافظه کمتری نگه میدارند و پاسخهای بزرگ در HTTP/1.x با کپیهای کمتری پردازش میشوند. Graceful Shutdown تضمینهای قویتری دارد و مسیرهای بیشتری از نوشتن vectored روی socket استفاده میکنند. h2c خودکار و TCP no-delay نیز پیشفرض شدهاند؛ طبق گزارش، این تغییرها deployment پشت reverse proxy را کارآمدتر و تأخیر streamها را بسیار کمتر میکنند.
اصلاحات امنیتی شامل اعمال محدودیتهای extractor بر payload درخواست پس از Decompression خودکار و غیرفعالکردن Decompression با large-window در Brotli است. parser درخواست HTTP اکنون پایاندهندههای نامعتبر chunked را رد میکند. همچنین جلوگیری از Stored XSS با نام فایلهای غیرمعمولِ تحت کنترل کاربر و رفع دورزدن محافظت فایلهای مخفی در Windows گزارش شده است. محدودیتهای parsing در multipart و اعتبارسنجی HTTP و WebSocket نیز اصلاح شدهاند.
گزارش به کسانی که مدتی بهروزرسانی نکردهاند توصیه میکند lockfile را بررسی کنند و دستور cargo update -p=actix-web را برای بهروزرسانی در نظر بگیرند.


