# Classino Teacher – Open Source Desktop Client
**Official open-source desktop application for teachers on the Classino Live Learning Management System**
Ultra-low-latency live classroom app built with Rust, Dioxus, Tauri, and GStreamer.
<img src="assets/logo.png" alt="Classino Teacher" width="200"/>
## Features
- Sub-second latency real-time video & interactive classes
- 1080p60 adaptive streaming powered by GStreamer
- Native cross-platform: Windows • macOS • Linux
- Screen sharing, webcam, whiteboard, chat, hand-raising, polling
- Teacher controls: mute, spotlight, remove, recording start/stop
- Full Persian/Arabic RTL + font support
- No browser needed – lightweight native desktop app
- All GStreamer runtime libraries bundled in the Windows installer
## Tech Stack
| Layer | Technology |
|--------------------|-------------------------------------------------|
| UI | Dioxus (full-stack Rust UI) + Tailwind CSS |
| Desktop Framework | Tauri 1.x (secure, tiny bundle size) |
| Streaming | GStreamer 1.22+ (WebRTC/RTP/custom pipelines) |
| Build Tooling | Cargo + npm + Tauri Bundler |
| Windows Installer | WiX Toolset (MSI with bundled GStreamer DLLs) |
## Open Source License
This project is licensed under the **GNU Affero General Public License v3.0** (AGPL-3.0).
```text
Classino Teacher – Open Source Edition
Copyright (C) 2025 Classino Project Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, version 3.
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 Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.Full license text: LICENSE
(If the file is missing, it will be added in the next commit)
# Clone the repository
git clone https://github.com/classino/teacher-desktop.git
cd teacher-desktop
# Install frontend dependencies (Tailwind)
npm install
# Run in development mode
npm run tauri devnpm run tauri buildOutputs:
- Windows →
src-tauri/target/release/bundle/msi/Classino-Teacher_x64_en-US.msi - macOS →
.dmgand.app - Linux →
.AppImage,.deb
src/
├── app.rs # Root Dioxus component
├── main.rs # Tauri entry point
├── view/ # Pages: login, register, classroom, etc.
├── update/ # Core logic & GStreamer streaming
├── model/ # Structs, validation, storage
assets/ # Icons, fonts (Vazir, IRANSharp), CSS
wix/ # WiX installer + bundled GStreamer DLLs
Contributions are welcome! Please read CONTRIBUTING.md (will be added soon) for details on code style, testing, and submitting pull requests.
- Issues & Feature Requests: https://github.com/classino/teacher-desktop/issues
- Discussions: https://github.com/classino/teacher-desktop/discussions
- Dioxus Team
- Tauri Team
- GStreamer Project
- All contributors and early adopters
Classino Teacher – Open Source Edition
Empowering educators worldwide with free, high-performance live teaching tools.