libgsh
This is a SDK library for building server applications that interact seamlessly with the gsh client. It provides essential tools and abstractions to enable efficient communication between the server and the gsh graphical shell client application.
Features
- Server-Client Communication: Simplifies the process of establishing and managing connections with the gsh client.
- Data Serialization: Includes utilities for encoding and decoding data exchanged between the server and client.
- Extensibility: Designed to be modular and extensible, allowing developers to build custom server-side functionality.
This library is an integral part of the gsh ecosystem, enabling developers to create robust and interactive server applications that leverage the graphical capabilities of the gsh client.
Build a Server
Do you want to build your own service with gsh? Choose between these out-of-the-box server implementations:
| Server | Description | Technology |
|---|---|---|
async |
An asynchronous server that handle communication concurrently. | Tokio async runtime |
simple |
A basic server that handle non-blocking communication | Native multi-threading |
Recommendation
Theasyncserver provides better performance and scalability for most applications.
View the examples directory for service implementations using the async and simple servers.
There you can view how they interact with the gsh client.
Prerequisites
Install the following dependencies before proceeding with setting up your development environment:
- Install Rust
- Install Visual Studio 2022 version 17
- In the "Workloads" tab enable "Desktop development with C++"
- Click Modify at the bottom right
- Install
protocversion 30.2 (shareddependency)