This project contains the crates that implement the OpenTalk RoomServer.
- OpenTalk RoomServer – The crate which produces the actual RoomServer executable. It implements the OpenTalk RoomServer Web API.
- OpenTalk RoomServer Client – HTTP-Client which can be used to communicate with the OpenTalk RoomServer using the OpenTalk RoomServer Web API
- OpenTalk RoomServer Common – Types that are shared between the OpenTalk RoomServer and Signaling Modules
- OpenTalk RoomServer Crypto Provider – Crypto provider setup for the OpenTalk RoomServer
- OpenTalk RoomServer DUI – Graphical interface for the RoomServer signaling, used for testing and development
- OpenTalk RoomServer Modules – Initializes the signaling module registrie with all modules
- OpenTalk RoomServer Room – Contains code for room management and signaling
- OpenTalk RoomServer Signaling – Types required to develop signaling modules. Most prominently the
SignalingModuletrait. - OpenTalk RoomServer Types – Types that are sent over the wire. These types are used in the HTTP-API and shared between the RoomServer crates.
- OpenTalk RoomServer Web API – HTTP-API endpoints written with Axum. This crate defines the API but does not implement any logic. All requests are forwarded to trait implementations.
The RoomServer DUI is used to debug the signaling interface.
You can execute it using:
just run-duiSome modules require the linguify typst package for localized report generation. This package is included in the container of the RoomServer. For some tests, it is also necessary to have this package present locally. It can be obtained/updated by running just install-latest-typst-packages.
Documentation for the RoomServer is build in the unified documentation project.
The content is copied from <roomserver-project-root>/docs and placed in the documentation project automatically.
The documentation contains verbatim copies of files outside the docs/ folder
(e.g. example/roomserver.toml). The ci-docs-updater is used to ensure that the documentation stays in sync with the original files.
You can update the documentation running:
just update-docs