Wasmer đã ra mắt hỗ trợ Python đầy đủ cho WebAssembly trên nền tảng Edge của họ, hứa hẹn hiệu suất gần như native trong khi vẫn duy trì khả năng sandboxing hoàn chỉnh. Sự phát triển này giải quyết nhu cầu ngày càng tăng về môi trường thực thi Python an toàn, đặc biệt cho các workload AI và các tình huống code không đáng tin cậy.
Thông báo này đã thu hút sự quan tâm đáng kể từ cộng đồng developer, với nhiều người coi đây là giải pháp tiềm năng để chạy code Python một cách an toàn trong môi trường production. Khác với các giải pháp tập trung vào browser như Pyodide, cách tiếp cận của Wasmer nhắm đến các ứng dụng server-side với khả năng tương thích framework đầy đủ.
![]() |
---|
Hỗ trợ Python mới của Wasmer hứa hẹn nâng cao hiệu suất và khả năng tương thích cho các ứng dụng WebAssembly |
Các tuyên bố về hiệu suất cho thấy kết quả ấn tượng
Wasmer tuyên bố rằng việc triển khai Python của họ chạy với tốc độ gần như không thể phân biệt với hiệu suất Python native, với các benchmark cho thấy thực thi nhanh hơn 4 lần so với các triển khai Python WebAssembly trước đây. Công ty đang thử nghiệm các tối ưu hóa có thể đẩy hiệu suất lên 95% tốc độ Python native, điều này sẽ đại diện cho một thành tựu đáng kể cho các môi trường thực thi sandboxed.
Tuy nhiên, các người dùng ban đầu đã gặp phải một số khó khăn với việc triển khai hiện tại. Quá trình biên dịch ban đầu có thể mất đến 10 phút khi chạy lần đầu, vì hệ thống biên dịch Python với tối ưu hóa LLVM. Wasmer thừa nhận hạn chế này và có kế hoạch phân phối các binary đã được biên dịch sẵn để loại bỏ độ trễ biên dịch.
So sánh Hiệu suất
Chỉ số | Wasmer Python | WASM Python Trước đây | Native Python |
---|---|---|---|
Hiệu suất Hiện tại | Nhanh hơn 4 lần so với phiên bản trước | Chuẩn cơ sở | Điểm chuẩn mục tiêu |
Tối ưu hóa Dự kiến | 95% tốc độ native | Không có | 100% |
Khởi động Lạnh | ~10 phút (lần chạy đầu tiên) | Khác nhau | Tức thì |
Các lần Chạy Tiếp theo | Nhanh (đã cache) | Khác nhau | Tức thì |
Hỗ trợ framework đầy đủ tạo nên sự khác biệt
Một trong những khía cạnh hấp dẫn nhất của việc triển khai của Wasmer là hỗ trợ framework toàn diện. Các developer có thể chạy các ứng dụng FastAPI, Django, Flask và Starlette mà không cần sửa đổi. Nền tảng này cũng hỗ trợ WebSockets, threading và các thư viện Python native bao gồm numpy, pandas và Pillow.
Khả năng tương thích rộng rãi này giải quyết các hạn chế lớn được tìm thấy trong các giải pháp cạnh tranh. Ví dụ, Cloudflare Workers với Pyodide thiếu hỗ trợ WebSocket, khả năng threading và thực thi subprocess. AWS Lambda yêu cầu adapter và không hỗ trợ WebSockets một cách native.
Hỗ trợ Framework và Thư viện
Được hỗ trợ đầy đủ:
- FastAPI (với WebSockets )
- Django
- Flask
- Starlette
- numpy
- pandas
- Pillow
- LangChain
- pyppeteer
Sắp ra mắt:
- certifi
- psycopg2
- gunicorn / gevent
- Pyarrow
- scipy
- Hỗ trợ SQLite
Bảo mật và sandboxing thúc đẩy sự quan tâm áp dụng
Các tác động bảo mật đã tạo ra cuộc thảo luận đáng kể giữa các developer. Nhiều người đang khám phá WebAssembly như một thay thế cho Docker container để chạy code không đáng tin cậy, đặc biệt trong các tình huống liên quan đến script do AI tạo ra hoặc code do người dùng gửi.
Tôi muốn có thể chạy code từ các nguồn không đáng tin cậy (người khác, người dùng ứng dụng SaaS của tôi, LLM) trong một môi trường, nơi tôi có thể kiểm soát phạm vi tác động nếu có gì đó xảy ra sai.
Trong khi Docker container cung cấp sự cô lập, một số developer bày tỏ lo ngại về các lỗ hổng container escape, đặc biệt khi xử lý code do AI tạo ra có khả năng độc hại. Thiết kế của WebAssembly như một môi trường thực thi sandboxed cung cấp một lớp bảo mật bổ sung thu hút các developer làm việc với các tình huống code không đáng tin cậy.
Triển khai kỹ thuật và các hạn chế hiện tại
Cách tiếp cận của Wasmer bao gồm việc biên dịch Python interpreter thành WebAssembly thay vì transpile code Python trực tiếp. Họ đã triển khai hỗ trợ dynamic linking cho các file .so/.dylib/.wasm và tạo ra Python Package Index riêng của họ với các thư viện native phổ biến được biên dịch cho WASIX (phần mở rộng WebAssembly System Interface của họ).
Các hạn chế hiện tại bao gồm thời gian biên dịch ban đầu dài và một số package còn thiếu. Các thư viện phổ biến như scipy, certifi và psycopg2 vẫn đang trong quá trình phát triển, mặc dù numpy và nhiều package thiết yếu khác đã có sẵn thông qua package index tùy chỉnh của họ.
Nền tảng hỗ trợ cả thực thi runtime thông qua Wasmer CLI và triển khai lên Wasmer Edge cho các ứng dụng serverless. Thử nghiệm ban đầu cho thấy hệ thống có thể xử lý các ứng dụng phức tạp bao gồm xử lý hình ảnh với Pillow và thậm chí tự động hóa browser với pyppeteer.
So sánh các nền tảng
Tính năng | Wasmer Edge | Cloudflare Workers | AWS Lambda |
---|---|---|---|
WebSockets | ✅ | ❌ | Hạn chế (thông qua API Gateway ) |
Threading | ✅ | ❌ | ❌ |
Subprocesses | ✅ | ❌ | ❌ |
Thư viện gốc | ✅ | Hạn chế | Hạn chế |
Độ phức tạp thiết lập | Thấp | Trung bình | Cao (yêu cầu adapters) |
Hỗ trợ Framework | Tương thích hoàn toàn | Hạn chế | Yêu cầu chỉnh sửa |
Nhìn về phía trước
Việc triển khai Python của Wasmer đại diện cho một bước tiến đáng kể hướng tới việc áp dụng WebAssembly thực tế cho các ứng dụng server-side. Trong khi độ trễ biên dịch ban đầu và tính khả dụng của package vẫn là những thách thức, sự kết hợp của hiệu suất gần như native, hỗ trợ framework toàn diện và khả năng sandboxing mạnh mẽ định vị điều này như một lựa chọn hấp dẫn cho các developer tìm kiếm môi trường thực thi Python an toàn.
Sự thành công của việc triển khai này có thể ảnh hưởng đến việc áp dụng rộng rãi hơn của WebAssembly cho các workload server-side, đặc biệt trong các tình huống mà bảo mật và cô lập là mối quan tâm hàng đầu.
Tham khảo: Python on the Edge: Fast, sandboxed, and powered by WebAssembly