22.07.2021

Rustilla on tehty Python-tulkki, jonka nimi on mielikuvituksettomasti RustPython.

RustPythonin pääsivu on githubissa:

http://github.com/RustPython/RustPython

Ohjelman voi kääntää itselle suoraan cargo-komennolla.

> cargo install --git https://github.com/RustPython/RustPython

Tämä asentaa ohjelman hakemistoon

¨/.local/.cargo/bin

joten tämä hakemisto kannattaa olla shellin polussa.

> rustpython
Welcome to the magnificent Rust Python 0.1.2 interpreter 😱 🖖
No previous history.
>>>>> 1 + 1
2
>>>>>

Webassembly -Python

Ehkä mielenkiintoisempaa kuin Rustilla tehty Python on se, että Rust osaa kääntää sujuvasti Webassembly-välikielelle, jota esim. selaimet tukevat. RustPython on siis saatavissa Webassembly-versiona.

Jos haluat kokeilla Webassemblyksi käännettyä RustPythonia, voit asentaa sen koneeseesi Webassembly-pakettimanagerilla wapm.

Wapm on osa Wasmer-pakettia, joka on kokonainen ympäristö palvelimessa ajettavalle Webassemblylle. Wasmer on kirjoitettu Rustilla.

Wasmerin asennus Linuxille onnistuu seuraavasti:

> curl https://get.wasmer.io -sSfL | sh

Kun Wasmer on asennettu, valmis RustPython-Webassembly-paketti voidaan asentaa seuraavasti:

> wapm install rustpython
> wapm run rustpython

Tällä tavalla voidaan ajaa Python-ohjelmia containerin sijaan "kevysandboxissa". Webassembly takaa, ettei suoritettava ohjelma voi päästä tunkeutumaan serverin muihin toimintoihin.

Tästä voi lukea lisää täältä:

Can WASM become the new Docker?

Krustlet Brings WebAssembly to Kubernetes with a Rust-Based Kubelet