SSVM
SSVMは、クラウド、AI、ブロックチェーンアプリケーション向けの高性能なエンタープライズグレードのWebAssembly仮想マシンです。以下のユースケースが含まれます:
- Node.jsアプリケーションにおけるRust関数の高性能かつセキュアなランタイム
- ONNX AIモデルのハードウェア最適化ランタイム
- 主要ブロックチェーンプラットフォーム向けスマートコントラクトランタイムエンジン
シンプルなウェブアプリ
機能: base64エンコードとデコード
まず、エンコードとデコードに使用する実際のコードを rust lib ファイルに記述します:
use base64::{decode, encode};
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn base64Encode(s: &str) -> String {
encode(s)
}
#[wasm_bindgen]
pub fn base64Decode(s: &str) -> String {
String::from_utf8(decode(s).unwrap()).unwrap()
}
その後、nodeでRubstコードを呼び出します:
const {
base64Encode,
base64Decode,
} = require('../pkg/ssvm_nodejs_starter_lib.js')
const http = require('http')
const url = require('url')
const hostname = '0.0.0.0'
const port = 3000
const server = http.createServer((req, res) => {
const queryObject = url.parse(req.url, true).query
if (queryObject['encodeStr']) {
res.end(base64Encode(queryObject['encodeStr']) + '
')
} else if (queryObject['decodeStr']) {
console.log(queryObject['decodeStr'])
res.end(base64Decode(queryObject['decodeStr']) + '
')
} else {
res.end(
`Please use command curl http://${hostname}:${port}/?encodeStr=string
or
http://${hostname}:${port}/?decodeStr=string
`
)
}
})
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`)
})