Add Web/WASM features #815

Open
CSystem77 wants to merge 0 commits from CSystem77/main into main
CSystem77 commented 2026-09-15 09:23:05 -05:00 (Migrated from github.com)

Chiaki-ng — Web / WASM

The goal of this project is to add a Web interface and an Electron client to Chiaki-ng, without modifying the core functionality of Chiaki-ng.

The original Chiaki-ng code has not been modified in its core functionality.
The work mainly adds a Web / WASM layer, as well as various services allowing Chiaki-ng to be used from a web browser or an Electron application.


Building Chiaki-ng with WebAssembly

One of the first parts of the project consists of porting/building Chiaki-ng with WebAssembly (WASM), allowing its functionality to run directly in a Web environment.

This makes it possible to create a Web client capable of interacting with Chiaki-ng directly from a browser, without requiring the installation of the native client.


Web Client

A complete Web client has been developed around the WASM build.

Authentication System

An authentication system has been implemented, allowing users to connect to the service.

  • User account management
  • Authentication
  • SQLite database
  • Management of the information required by the service

Virtual Controller

A virtual controller directly integrated into the browser has been added.

The system also includes a theme system, allowing the appearance of the controller and its interface to be customized.

Physical Controller Support

The Web client also supports using a controller connected to the user's device directly from the browser.

It is therefore possible to play from the Web using:

  • a physical controller;
  • the virtual controller integrated into the website.

Stream Sharing

A streaming session can be shared through a simple link.

The sharing system can include different elements of the session:

  • Stream image / video
  • Audio
  • Controller
  • Virtual controller

This allows multiple users to participate in the same session.


Proxy

A proxy system has also been developed to facilitate remote connections.

Builds are available/planned for:

  • Windows
  • macOS
  • Linux

The goal is to allow remote connections without requiring ports to be opened on the console's network.

The proxy must be running on a machine located on the same local network as the console.

The proxy connects to the console locally and acts as a bridge between the console and the remote client.

This makes remote access easier when the user is behind NAT or cannot configure their router.


Integrated Documentation

The documentation has been integrated directly into the Web client.

The interface follows the Chiaki visual theme to maintain consistency with the original project.

The documentation is available directly from the interface without requiring users to consult external documentation.

Documentation:
https://streetpea.github.io/chiaki-ng/


Electron Client

In addition to the Web client, an Electron client has been developed.

It allows the project to be used as a desktop application while maintaining an architecture close to the Web client.

Keyboard / Mouse Redesign

The keyboard and mouse system has been completely redesigned to improve its use with both the Web and Electron clients.

The goal is to provide better keyboard/mouse input handling and a more consistent experience between the Web and Electron clients.

Multilingual Support

Support has been added for multiple languages:

  • French
  • English

The system has been designed to make it easier to add additional languages in the future.

Controller Support

The Electron client also supports physical controllers, allowing users to play directly from the desktop application.


Summary

In summary, Chiaki-ng remains the core of the project, and its original functionality has not been modified.

The development mainly adds a new layer allowing Chiaki-ng to be used in different environments.

The existing development versions of Chiaki-ng are not modified.

Added Features

Feature Web Electron
Chiaki-ng / WASM Yes Yes
Authentication system Yes No
SQLite database Yes No
Virtual controller Yes No
Physical controller support Yes Yes
Keyboard / mouse Yes Yes
Stream sharing Yes No
Controller sharing Yes No
Virtual controller sharing Yes No
Audio sharing Yes No
Video sharing Yes No
Proxy Yes Yes
Windows / macOS / Linux support Yes Yes
Integrated documentation Yes No
Multilingual support Yes Yes

Demo :
chiaki.csphere.fr/

Video
https://www.youtube.com/watch?v=oqji_qCdI4E

# Chiaki-ng — Web / WASM The goal of this project is to add a **Web interface and an Electron client to Chiaki-ng**, without modifying the core functionality of Chiaki-ng. > **The original Chiaki-ng code has not been modified in its core functionality.** > The work mainly adds a **Web / WASM layer**, as well as various services allowing Chiaki-ng to be used from a web browser or an Electron application. --- ## Building Chiaki-ng with WebAssembly One of the first parts of the project consists of porting/building **Chiaki-ng with WebAssembly (WASM)**, allowing its functionality to run directly in a Web environment. This makes it possible to create a **Web client capable of interacting with Chiaki-ng directly from a browser**, without requiring the installation of the native client. --- # Web Client A complete Web client has been developed around the WASM build. ## Authentication System An authentication system has been implemented, allowing users to connect to the service. - User account management - Authentication - **SQLite** database - Management of the information required by the service ## Virtual Controller A **virtual controller directly integrated into the browser** has been added. The system also includes a **theme system**, allowing the appearance of the controller and its interface to be customized. ## Physical Controller Support The Web client also supports using a **controller connected to the user's device** directly from the browser. It is therefore possible to play from the Web using: - a physical controller; - the virtual controller integrated into the website. ## Stream Sharing A streaming session can be shared through **a simple link**. The sharing system can include different elements of the session: - Stream image / video - Audio - Controller - Virtual controller This allows multiple users to participate in the same session. --- # Proxy A **proxy system** has also been developed to facilitate remote connections. Builds are available/planned for: - Windows - macOS - Linux The goal is to allow remote connections **without requiring ports to be opened on the console's network**. The proxy must be **running on a machine located on the same local network as the console**. The proxy connects to the console locally and acts as a bridge between the console and the remote client. This makes remote access easier when the user is behind NAT or cannot configure their router. --- # Integrated Documentation The documentation has been integrated directly into the Web client. The interface follows the **Chiaki visual theme** to maintain consistency with the original project. The documentation is available directly from the interface without requiring users to consult external documentation. Documentation: https://streetpea.github.io/chiaki-ng/ --- # Electron Client In addition to the Web client, an **Electron client** has been developed. It allows the project to be used as a desktop application while maintaining an architecture close to the Web client. ## Keyboard / Mouse Redesign The **keyboard and mouse system has been completely redesigned** to improve its use with both the Web and Electron clients. The goal is to provide better keyboard/mouse input handling and a more consistent experience between the Web and Electron clients. ## Multilingual Support Support has been added for multiple languages: - French - English The system has been designed to make it easier to add additional languages in the future. ## Controller Support The Electron client also supports **physical controllers**, allowing users to play directly from the desktop application. --- # Summary In summary, **Chiaki-ng remains the core of the project**, and its original functionality has not been modified. The development mainly adds a new layer allowing Chiaki-ng to be used in different environments. The existing development versions of Chiaki-ng are not modified. # Added Features | Feature | Web | Electron | |---|:---:|:---:| | Chiaki-ng / WASM | Yes | Yes | | Authentication system | Yes | No | | SQLite database | Yes | No | | Virtual controller | Yes | No | | Physical controller support | Yes | Yes | | Keyboard / mouse | Yes | Yes | | Stream sharing | Yes | No | | Controller sharing | Yes | No | | Virtual controller sharing | Yes | No | | Audio sharing | Yes | No | | Video sharing | Yes | No | | Proxy | Yes | Yes | | Windows / macOS / Linux support | Yes | Yes | | Integrated documentation | Yes | No | | Multilingual support | Yes | Yes | Demo : [chiaki.csphere.fr/](https://chiaki.csphere.fr/) Video https://www.youtube.com/watch?v=oqji_qCdI4E
This pull request is broken due to missing fork information.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin 'CSystem77/main:CSystem77/main'
git switch 'CSystem77/main'

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch 'main'
git merge --no-ff 'CSystem77/main'
git switch 'CSystem77/main'
git rebase 'main'
git switch 'main'
git merge --ff-only 'CSystem77/main'
git switch 'CSystem77/main'
git rebase 'main'
git switch 'main'
git merge --no-ff 'CSystem77/main'
git switch 'main'
git merge --squash 'CSystem77/main'
git switch 'main'
git merge --ff-only 'CSystem77/main'
git switch 'main'
git merge 'CSystem77/main'
git push origin 'main'
Sign in to join this conversation.
No description provided.