Skip to content
Simple Web and WebSocket server, specially for sites that use Simbol
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Simbol server

A simple HTTP and WebSocket server built on top of Iron and ws. Easily get started with a Simbol app

Quick start

In the root directory of you web project, create a server directory for the Rust server:

mkdir server
mkdir server/src
cd server

Create a Cargo.toml and add the dependency to it:

simbol-server = "1.0.0"

Create a file in the server/src directory with the following content:

extern crate simbol;

use std::thread;
use simbol::server::*;
use simbol::multivp::*;

fn main() {
    let mut routes: Vec<Route> = Vec::new();
    routes.push(Route {
            mount_path: String::from("/build/"), // Mount path, referring to which part of the URL it takes care of
            relative_path: String::from("build"), // The actual relative path to the content from your project's root directory
    routes.push(Route {
        mount_path: String::from("/assets/"),
        relative_path: String::from("assets"),
    let server = SimbolServer::new(String::from("../"), 3000, routes);
    let http_handle = thread::spawn(move || {

    let multivp_server = MultiVP::new(String::from("localhost"), 8091);
    let ws_handle = thread::spawn(move || {


This will create and run an HTTP server with the default roots to load:

  • index.html from /index.html
  • The different files in /*
  • Your assets, such as GLTF files, from /assets/
  • Your built files, such as your JS and CSS, from /build/

It will also create and run a WebSocket server for the multiVP (social) component of Simbol

Then run it:

cargo run


Check out the Contribution guide! If you have any questions, join our community


This program is free software and is distributed under an MIT License.

You can’t perform that action at this time.