=3.12-blue?logo=python&logoColor=white title="Made with Python" loading="lazy" /> =22-blue?logo=node.js&logoColor=white title="Made with Node.js" loading="lazy" />
Open source development for a high performance Rust communication engine, primarily for game show use.
Configure the software using an Excel file. Both the DDX format (to be finalized later), and the Olympus Online format may be used.
Sound must be configured beforehand (see assets/public/sounds/README.md). The list of all required sounds as well as their samples (not bundled because of size and copyright reasons) resides at assets/public/sounds/catalog.json
.
The server software will host a web service and a WebSockets server on a
hard-coded IP adress and port at localhost:6942/
.
The Python bindings is manually typed and wheel built using PyO3. The JavaScript bindings is automatically generated using wasm-
The protocol in which the client and server communicates in is based
on serde
serialization of Rust structs. Bindings for Python and
JavaScript is available (see engine/engine.pyi
and the generated
node_modules/client/client.d.ts
)
You may find project files from various subprojects in these
directories:
| Subproject | Directory |
|------------------------|----------------------------|
| User Interface | /frontend/src/
|
| Server Logic | /server/logic/
|
| Server Utilities | /server/penguin/
|
| Engine & APIs | /engine/src/
|
| Engine Bindings Python | /engine/engine.pyi
|
| Client Communications | /frontend/client/src/
|
| Client Bindings TS | /frontend/client/src/types
|
See Hacking (above) for requirements. After that, the project may be built. Note that the Python bindings is automatically built by Actions and can be found here (Michaelsoft Binbows
for Windows, Penguin
for Linux),
chick
chick front
. The Rust module will be automatically
compiled and bundled, and hot-reload enabled Vite starts serving on
the address provided in config.json
.chick run
. The Rust module will be compiled,
the Python binding generated, the wheel built and installed automatically.
server/main.py
is subsequenly called, with server/
as current directory.compileRustDev
in package.json
, like bun run dev
, npm run dev
, yarn dev
, etc.maturin develop
(or if you want a .whl
file, use maturin build -o <name>
). Change your directory into server/
, and run main.py
.Copyright (c) 2023-2024 FalcoLabs.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.