Wasmer Edge Membawa Prestasi Python Hampir-Natif ke WebAssembly dengan Sokongan Rangka Kerja Penuh

Pasukan Komuniti BigGo
Wasmer Edge Membawa Prestasi Python Hampir-Natif ke WebAssembly dengan Sokongan Rangka Kerja Penuh

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
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