Wasmer telah melancarkan sokongan penuh Python untuk WebAssembly pada platform Edge mereka, menjanjikan prestasi hampir-natif sambil mengekalkan keupayaan sandboxing yang lengkap. Perkembangan ini menangani keperluan yang semakin meningkat untuk persekitaran pelaksanaan Python yang selamat, terutamanya untuk beban kerja AI dan senario kod yang tidak dipercayai.
Pengumuman ini telah mencetuskan minat yang ketara dalam komuniti pembangun, dengan ramai yang melihat ini sebagai penyelesaian berpotensi untuk menjalankan kod Python dengan selamat dalam persekitaran pengeluaran. Tidak seperti penyelesaian yang berfokuskan pelayar seperti Pyodide , Wasmer menyasarkan aplikasi sebelah pelayan dengan keserasian rangka kerja penuh.
![]() |
---|
Sokongan Python baharu Wasmer menjanjikan prestasi yang dipertingkat dan keserasian untuk aplikasi WebAssembly |
Dakwaan Prestasi Menunjukkan Keputusan Yang Mengagumkan
Wasmer mendakwa pelaksanaan Python mereka berjalan pada kelajuan yang hampir tidak dapat dibezakan daripada prestasi Python natif, dengan penanda aras menunjukkan pelaksanaan 4 kali lebih pantas daripada pelaksanaan Python WebAssembly sebelumnya. Syarikat itu sedang menguji pengoptimuman yang boleh meningkatkan prestasi kepada 95% daripada kelajuan Python natif, yang akan mewakili pencapaian ketara untuk persekitaran pelaksanaan bersandbox.
Walau bagaimanapun, pengguna awal telah menghadapi beberapa geseran dengan pelaksanaan semasa. Proses kompilasi awal boleh mengambil masa sehingga 10 minit pada larian pertama, kerana sistem mengkompil Python dengan pengoptimuman LLVM . Wasmer mengakui had ini dan merancang untuk mengedarkan binari pra-kompil untuk menghapuskan kelewatan kompilasi.
Perbandingan Prestasi
Metrik | Wasmer Python | WASM Python Terdahulu | Python Asli |
---|---|---|---|
Prestasi Semasa | 4x lebih pantas daripada yang terdahulu | Garis dasar | Penanda aras sasaran |
Pengoptimuman Dirancang | 95% daripada kelajuan asli | T/A | 100% |
Permulaan Sejuk | ~10 minit (larian pertama) | Berbeza-beza | Serta-merta |
Larian Berikutnya | Pantas (dicache) | Berbeza-beza | Serta-merta |
Sokongan Rangka Kerja Penuh Membezakannya
Salah satu aspek yang paling menarik dalam pelaksanaan Wasmer ialah sokongan rangka kerja yang komprehensif. Pembangun boleh menjalankan aplikasi FastAPI , Django , Flask , dan Starlette tanpa pengubahsuaian. Platform ini juga menyokong WebSockets , threading, dan perpustakaan Python natif termasuk numpy, pandas, dan Pillow .
Keserasian yang luas ini menangani had utama yang terdapat dalam penyelesaian pesaing. Cloudflare Workers dengan Pyodide , sebagai contoh, tidak mempunyai sokongan WebSocket , keupayaan threading, dan pelaksanaan subproses. AWS Lambda memerlukan penyesuai dan tidak menyokong WebSockets secara natif.
Sokongan Rangka Kerja dan Perpustakaan
Disokong Sepenuhnya:
- FastAPI (dengan WebSockets )
- Django
- Flask
- Starlette
- numpy
- pandas
- Pillow
- LangChain
- pyppeteer
Akan Datang:
- certifi
- psycopg2
- gunicorn / gevent
- Pyarrow
- scipy
- Sokongan SQLite
Keselamatan dan Sandboxing Mendorong Minat Penggunaan
Implikasi keselamatan telah menjana perbincangan yang ketara di kalangan pembangun. Ramai yang meneroka WebAssembly sebagai alternatif kepada bekas Docker untuk menjalankan kod yang tidak dipercayai, terutamanya dalam senario yang melibatkan skrip yang dijana AI atau kod yang dikemukakan pengguna.
Saya mahu dapat menjalankan kod daripada sumber yang tidak dipercayai (orang lain, pengguna aplikasi SaaS saya, LLM ) dalam persekitaran, di mana saya boleh mengawal radius letupan jika sesuatu yang tidak diingini berlaku.
Walaupun bekas Docker menyediakan pengasingan, sesetengah pembangun menyatakan kebimbangan tentang kelemahan melarikan diri bekas, terutamanya apabila berurusan dengan kod yang berpotensi berniat jahat yang dijana AI . Reka bentuk WebAssembly sebagai persekitaran pelaksanaan bersandbox menawarkan lapisan keselamatan tambahan yang menarik minat pembangun yang bekerja dengan senario kod yang tidak dipercayai.
Pelaksanaan Teknikal dan Had Semasa
Pendekatan Wasmer melibatkan kompilasi penterjemah Python kepada WebAssembly dan bukannya mentranspil kod Python secara langsung. Mereka telah melaksanakan sokongan pemautan dinamik untuk fail .so/.dylib/.wasm dan mencipta Python Package Index mereka sendiri dengan perpustakaan natif popular yang dikompil untuk WASIX (sambungan WebAssembly System Interface mereka).
Had semasa termasuk masa kompilasi awal yang panjang dan beberapa pakej yang hilang. Perpustakaan popular seperti scipy, certifi, dan psycopg2 masih dalam pembangunan, walaupun numpy dan banyak pakej penting lain sudah tersedia melalui indeks pakej tersuai mereka.
Platform ini menyokong kedua-dua pelaksanaan runtime melalui Wasmer CLI dan penggunaan ke Wasmer Edge untuk aplikasi tanpa pelayan. Ujian awal menunjukkan sistem boleh mengendalikan aplikasi kompleks termasuk pemprosesan imej dengan Pillow dan juga automasi pelayar dengan pyppeteer.
Perbandingan Platform
Ciri | Wasmer Edge | Cloudflare Workers | AWS Lambda |
---|---|---|---|
WebSockets | ✅ | ❌ | Terhad (melalui API Gateway ) |
Threading | ✅ | ❌ | ❌ |
Subprocesses | ✅ | ❌ | ❌ |
Perpustakaan Asli | ✅ | Terhad | Terhad |
Kerumitan Persediaan | Rendah | Sederhana | Tinggi (memerlukan penyesuai) |
Sokongan Framework | Keserasian penuh | Terhad | Memerlukan pengubahsuaian |
Memandang ke Hadapan
Pelaksanaan Python Wasmer mewakili langkah ketara ke arah penggunaan WebAssembly praktikal untuk aplikasi sebelah pelayan. Walaupun kelewatan kompilasi awal dan ketersediaan pakej kekal sebagai cabaran, gabungan prestasi hampir-natif, sokongan rangka kerja yang komprehensif, dan keupayaan sandboxing yang kukuh meletakkan ini sebagai pilihan yang menarik untuk pembangun yang mencari persekitaran pelaksanaan Python yang selamat.
Kejayaan pelaksanaan ini boleh mempengaruhi penggunaan WebAssembly yang lebih luas untuk beban kerja sebelah pelayan, terutamanya dalam senario di mana keselamatan dan pengasingan adalah kebimbangan utama.
Rujukan: Python on the Edge: Fast, sandboxed, and powered by WebAssembly