Skip to content

A template project to run Rust functions in Node.js through the Second State WebAssembly engine.

Notifications You must be signed in to change notification settings

febinaf/ssvm-nodejs-starter

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Getting started

Build and test

Fork this project to create your own Rust functions in Node.js. Learn more

  • The Rust functions are in the src directory. You can put high performance workload into Rust functions.
  • The JavaScript functions are in the node directory and they can access the Rust functions.
  • Use the node node/app.js command to run the application in Node.js.

Use Docker to build and run

$ docker build -t ssvm-nodejs:v1 .
$ docker run -p 3000:3000 --rm -it -v $(pwd):/app ssvm-nodejs:v1
(docker) # cd /app
(docker) # ssvmup build
(docker) # node node/app.js

From a second terminal window, you can test the local server.

$ curl https://localhost:3000/?name=SSVM
hello SSVM

Use VSCode Codespace

SSVM

This project template works with the VS Codespaces online IDE! Code, build, and run directly from inside the browser. No software download or install needed! Check out the high-res screencast.

VS Codespaces runs entirely in your browser and costs around $1 per work day. It is cheaper than a cup of coffee in the office. Alternatively, use locally installed VSCode and Docker, and launch the IDE with your remote git repository.

1 First, open the VS Codespaces web site and login with your Azure account. You can get a free Azure account.

2 Next, create a new Codespace. Put your forked repository into the Git Repository field.

Create a new Codespace

3 Then open the src/lib.rs, node/app.js and Cargo.toml files and see how the Node.js express app calls the Rust function to say hello.

Code in Codespace

4 Click on the Run button on the left panel, and then the Launch Program at the top to build and run the application.

Build and run

The Terminal window at the bottom shows the build progress. It builds the Rust program, and then launches the Node.js app.

Build

The Debug window shows the Node.js server running and waiting for web requests.

Debug

5 Now, you have two choices. You could use the proxy link for 127.0.0.1:3000 to access the running server in a browser.

Browser link

Or, you could open another terminal window in the IDE via the Terminal -> New Terminal menu.

Open Terminal

From the terminal window, you can test the local server.

$ curl https://127.0.0.1:3000/?name=SSVM
hello SSVM

The Quadratic equation webapp example

In this example, we demonstrate how to use JSON to call Rust functions in SSVM from JavaScript. Read about Getting started with Rust functions in Node.js.

Prerequisites

If you have not done so already, follow these simple instructions to install Rust, Node.js, SSVM, and ssvmup.

Build the application

$ ssvmup build

Test

$ cd node $ node test.js [0.5,-3.0]

Web app

$ cd node $ node server.js Listening at https://localhost:8080

Then point your browser to https://hostname:8080 enter numeric values for a, b, c, and hit the "Solve" button to find the roots.

Read more:

Resources

Brought to you by the Open source dev team at Second State. Follow us on Twitter, Facebook, LinkedIn, YouTube, or Medium

About

A template project to run Rust functions in Node.js through the Second State WebAssembly engine.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 42.2%
  • Dockerfile 39.2%
  • JavaScript 10.0%
  • Rust 8.6%