Michael Kennedy پروژهٔ chameleon-rs را معرفی کرده است؛ پیادهسازی تقریباً کامل زبان template در Chameleon با Rust، با هدف حفظ سازگاری، افزایش سرعت و پشتیبانی از نیازهای برنامههای وب مدرن Python. به گفتهٔ او، templateها و کدهای موجود بدون تغییر اجرا میشوند و خروجی یکسانی در سطح byte تولید میکنند.
انگیزهٔ این پروژه، از جمله، پشتیبانی رسمی از free-threaded Python در Python 3.14 و ادامهٔ توسعهٔ آن در 3.15 بوده است. Kennedy میگوید repository مربوط به Chameleon تنها تا Python 3.13 را پشتیبانیشده نشان میدهد و build آن نیز ناموفق است. در مقابل، chameleon-rs برای rendering بهشکل thread-safe و بدون Global Interpreter Lock (GIL) طراحی و آزمایش شده و dependency در runtime ندارد.
در زمینهٔ عملکرد، Kennedy گزارش میدهد که جایگزینی Chameleon با chameleon-rs در برنامهٔ وب خودش، میانهٔ زمان پاسخ را در سراسر سایت حدود ۲۰ درصد کاهش داده است. این عدد مربوط به کل برنامه، شامل احراز هویت، کار با database، logging و بخش تجارت الکترونیکی است؛ نه صرفاً سرعت rendering یک template. او همچنین میگوید عملیات داخلی template در Rust و بدون Python bytecode انجام میشود؛ Python فقط هنگام مراجعه به کد برنامه، مانند فراخوانی method یا helper، وارد عمل میشود.
قابلیتهای جدید شامل partial داخلی، تبدیل Markdown به HTML و async rendering است. متد render_async() هنگام انتظار برای داده، event loop را آزاد میگذارد. اتصال داخلی به Flask/Quart، FastAPI، Starlette، Robyn و Litestar نیز فراهم شده است. پشتیبانی Markdown اختیاری است و converter داخلی آن با comrak در Rust کار میکند؛ بنابراین نصب package جداگانه برای Markdown لازم نیست.
برای مهاجرت، دو مسیر معرفی شده است: اجرای chameleon_rs.compat.install() در ابتدای برنامه و پیش از هر import از Chameleon، یا تغییر importها به chameleon_rs. برای ارزیابی پیش از مهاجرت نیز Shadow Mode وجود دارد: نمونهای از ترافیک واقعی با هر دو پیادهسازی render میشود و تفاوت خروجیها گزارش میشود، درحالیکه Chameleon همچنان پاسخ کاربران را ارائه میکند. این روش امکان بررسی سازگاری را بدون تغییر خروجی قابلمشاهده برای کاربران فراهم میکند.




