# VS Codespaces

## This page is outdated. Please visit here to check out [how to get started with Rust functions in Node.js with VSCode](https://www.secondstate.io/articles/getting-started-rust-nodejs-vscode/).&#x20;

In the [previous tutorial](/server-side-webassembly/getting-started.md), we discussed how to create and access Rust functions in Node.js apps. In this tutorial, I will show you how to experiment with development without installing any developer tools software.

![https://www.youtube.com/watch?v=j85cbNsciOs](/files/-M7ih1C5kjt59UNOXtDf)

[**Fork this GitHub repository**](https://github.com/second-state/ssvm-nodejs-starter/fork) to get started. In your fork, you can use GitHub's web UI to edit source code files.

* The Rust files are in the `src` directory. You can put high performance workload into Rust functions. The Rust build and dependency configuration is in the `Cargo.toml` file.
* The JavaScript files are in the `node` directory and they can access the Rust functions.
  * The `node/app.js` file contains the application.

### VS Codespaces steps

{% hint style="info" %}
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, in steps 1-2 below, you could use locally installed VSCode and Docker, and [launch the IDE with your remote git repository](https://code.visualstudio.com/remote-tutorials/containers/getting-started).
{% endhint %}

First, open the [VSCode Codespaces](https://online.visualstudio.com/) web site and login with your Azure account. You can get a [free Azure account](https://azure.microsoft.com/en-us/free/).

Next, create a new codespace. Put your forked repository into the Git Repository field. This step takes a few minutes. But once a codespace is created, subsequent openings only take seconds.

![](/files/-M6rgrDU19q3AwK5HTIT)

Open the source code files and make changes as you wish!

![](/files/-M6rh4uRU1jlyhbgogfo)

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

![](/files/-M6rhEyyc0F-Xi_QULSy)

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

![](/files/-M6rhQPQv2cLxLEUdwf3)

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

![](/files/-M6rh_DgonJ4jp6rJlQj)

Now, open another terminal window in the IDE via the `Terminal -> New Terminal` menu.

![](/files/-M6rhzSfSE03tmFm5Fr3)

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

```
$ curl http://127.0.0.1:3000/?name=SSVM
hello SSVM
```

In fact, you can run any Linux command from VSCode's built-in Terminal. You could run `ssvmup build` to build, and then `node node/app.js` to run the Node.js application. The Node.js application could be a server application as we have shown here, or simply a command line program as many of our [later examples](/server-side-webassembly/pass-any-argument-and-return-any-value.md).

![](/files/-M6rkkwZ6dvOgEohgF67)

That's it! VSCode has many useful features such as real time error detection and syntax highlighting as you type code, advanced Github integration, and integrations with many many development tools. Enjoy coding!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cloud.secondstate.io/server-side-webassembly/getting-started/the-no-software-approach.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
