Jianhui Zhao f59c519d0c Improve HTTP connection termination with zero-length notifications
This commit enhances the handling of server-side HTTP disconnections by
implementing a zero-length message notification mechanism.

This change ensures proper notification of server-side disconnections to
device-side rtty instances, fixing cases where HTTP connections would remain
open after server disconnection.

Signed-off-by: Jianhui Zhao <zhaojh329@gmail.com>
2025-08-14 18:01:52 +08:00
2025-07-22 21:17:14 +08:00
2021-09-06 11:33:56 +00:00
2025-07-20 22:40:43 +08:00
2018-01-17 22:39:08 +08:00
2021-09-11 00:22:39 +08:00
2021-04-21 23:35:23 +08:00
2018-03-15 13:30:48 +08:00
2018-03-15 13:30:48 +08:00
2019-09-03 14:54:23 +08:00
2025-08-01 10:20:07 +08:00
2025-08-01 10:20:07 +08:00

rtty (中文) - Access your device from anywhere via the web

Official Website: https://rttys.net/

This project is officially supported by GL.iNet.

license PRs Welcome Issue Welcome Release Version Build Status Downloads ReadmeX Ask DeepWiki visitors

Architecture

flowchart TB
s[rttys with public IP address]
u1["User (Web Browser)"] --> s
u2["User (Web Browser)"] --> s
u3["User (Web Browser)"] --> s
s --> c1["rtty (Linux Device)"]
s --> c2["rtty (Linux Device)"]
s --> c3["rtty (Linux Device)"]

Overview

rtty is a powerful remote terminal solution composed of clients and a server.

Client Implementations:

  • C Client: Ultra-lightweight, designed for embedded Linux and resource-constrained devices.
  • Go Client: Easy cross-platform compilation, suitable for rapid integration and cloud-native/container environments.

The server is implemented in Go, with a modern frontend built using Vue.

You can access your device from anywhere via a web browser, and manage devices using unique device IDs.

rtty is ideal for remote maintenance and management of large-scale distributed Linux devices, making it a great choice for enterprise operations.

Go client repository: https://github.com/zhaojh329/rtty-go

Key Features

🚀 Multi-language Client Options

  • C Client:

    • Ultra-lightweight, designed for embedded Linux and resource-constrained devices
    • Minimal footprint (without SSL: rtty 32KB + libev 56KB; with SSL: + libmbedtls 88KB + libmbedcrypto 241KB + libmbedx509 48KB)
    • Multiple SSL backends (OpenSSL, mbedtls, CyaSSl/wolfssl)
    • mTLS support for mutual authentication
  • Go Client:

    • Easy cross-platform compilation, suitable for rapid integration and cloud/container environments
    • Minimal dependencies, simple deployment
    • It has the same functions as the C client and is fully compatible.

🔐 Security

  • Multiple SSL backends and mutual authentication for secure data transfer

🌐 Advanced Remote Management

  • Batch command execution across multiple devices
  • Device identification using unique device IDs
  • HTTP Proxy support for accessing device web interfaces

📁 File Management

  • Seamless file transfer: convenient upload and download
  • Web-based interface for intuitive file operations

💻 Modern Terminal Experience

  • Full-featured terminal powered by Xterm.js
  • Browser-based access from anywhere
  • Virtual keyboard support for touch devices
  • Window splitting for multi-session and multitasking

Deployment & Compatibility

  • Simple deployment and quick setup
  • Easy-to-use interface
  • Cross-platform compatibility

Deployment & Usability

  • Simple deployment process
  • Easy to use interface
  • Cross-platform compatibility

Production Users

Trusted by leading technology companies:

Client Dependencies

C Client Dependencies

Go Client Dependencies

  • No extra dependencies. Pure Go build and runtime.

Star History

Star History Chart

🤝 Contributing

Help us make rtty even better!

See the CONTRIBUTING.md file for detailed guidelines on how to contribute to this project.

Description
⚠️ ARCHIVED: Original GitHub repository no longer exists. Preserved as backup on 2026-02-27T09:20:37.234Z
Readme MIT 9.7 MiB
Languages
C 96.1%
CMake 2.5%
Shell 1.4%