Skip to content

G-Core/FastEdge-vscode

Repository files navigation

FastEdge VSCode Extension

A VS Code extension for building, running, and debugging Gcore FastEdge applications — with a Postman-like interface for crafting requests and inspecting responses.

Supports both HTTP apps and CDN apps across three languages:

Rust  JavaScript  AssemblyScript 
App Type Languages SDK
HTTP Rust, JavaScript FastEdge-sdk-rust, FastEdge-sdk-js
CDN Rust, AssemblyScript proxy-wasm-sdk-rust, proxy-wasm-sdk-as

How it works

The extension compiles your code into a WASM binary using language-specific build tools, then serves it locally using a bundled debugger — no external tools required.

A webview panel opens inside VS Code where you can:

  • Build requests (URL, method, headers, body)
  • Send them to your running app
  • Inspect the response (status, headers, body)
  • Load and save test configurations

Each app gets its own isolated server instance on a port in the range 5179–5188, so you can debug multiple apps in the same workspace simultaneously.

Prerequisites

You need the build tools for your chosen language installed:

Rust (HTTP or CDN apps):

rustup target add wasm32-wasip1

JavaScript (HTTP apps):

npm install --save-dev @gcoredev/fastedge-sdk-js

AssemblyScript (CDN apps):

npm install --save-dev assemblyscript @assemblyscript/wasi-shim @gcoredev/proxy-wasm-sdk-as

More detail can be found in the SDK documentation linked above.

Installing the extension

This extension can be installed from the Visual Studio Marketplace: FastEdge Launcher

It is also possible to install from source: Releases

Running your first application

Press F5 in VS Code (or Command Palette → Debug: Start Debug).

When running for the first time, you'll need a .vscode/launch.json. The easiest way is to let the extension create one:

Command Palette (Ctrl+Shift+P) → FastEdge: Initialize workspace (create launch.json)

Example launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "FastEdge App Runner: Launch",
      "type": "fastedge",
      "request": "launch",
      "entrypoint": "file"
    }
  ]
}

The entrypoint field controls how the build finds your source code:

Value Behavior
"file" (default) Builds the currently active editor file
"package" Builds from the "main" field in package.json (JavaScript only)

These are the only configuration values read from launch.json. Runtime arguments (env vars, headers, etc.) are configured separately — see Runtime Configuration below.

Language detection

The extension auto-detects your project language:

Indicator Detected as
VS Code language ID = rust Rust
asconfig.json exists at project root AssemblyScript
JS/TS file without asconfig.json JavaScript

Commands

Available from the Command Palette (Ctrl+Shift+P):

Command Description
Debug: FastEdge App (Current File) Build the active file and start the debugger
Debug: FastEdge App (Package Entry) Build from package.json main field and start the debugger
FastEdge: Initialize workspace Create .vscode/launch.json with default configuration
FastEdge (Generate mcp.json) Add the FastEdge MCP Server to your workspace
FastEdge (Setup Codespace Secrets) Configure GitHub Codespaces secrets for FastEdge

Explorer context menu

Right-click actions in the file explorer:

Command Appears on Description
FastEdge: Load in Debugger .wasm files Load a pre-compiled WASM binary directly into the debugger
FastEdge: Load Config in Debugger *test.json files Load a test configuration file into the debugger

Runtime Configuration

Environment variables, secrets, request headers, and response headers are configured through test configuration files — not launch.json.

Primary: fastedge-config.test.json

The debugger UI provides built-in controls to set environment variables, secrets, and headers. These are saved to and loaded from fastedge-config.test.json in your app root, using native file dialogs.

Alternative: dotenv files

You can also provide runtime arguments via .env files that the extension auto-discovers from your app root directory.

Please be aware that if you are adding sensitive information to these files, they should be added to your .gitignore:

# VSCode workspace
.vscode/

# dotenv files
.env
.env.*

# Build artifacts
.fastedge-debug/

For more information on how the extension locates and uses dotenv files, see DOTENV.md.

Settings

Setting Description
fastedge.cliVersion The version of the bundled debugger (read-only)
fastedge.apiUrl Default FastEdge API URL for MCP server configuration

To view the bundled debugger version:

  1. Open Settings (Ctrl+, or Cmd+,)
  2. Search for "FastEdge"

About

VS Code extension for FastEdge

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors