ruida

Crates.ioruida
lib.rsruida
version0.1.1
created_at2025-07-15 12:39:45.626894+00
updated_at2025-07-15 13:05:51.426697+00
descriptionFast Rust Library and CLI to control Ruida Laser DSP Machines, with Python bindings
homepagehttps://github.com/lyonlabs/ruida
repositoryhttps://github.com/lyonlabs/ruida
max_upload_size
id1753232
size69,358
Thierry Marchisio (thierry-marchisio)

documentation

README

Ruida – Open Source Ruida Laser Controller Interface

Ruida is an open-source toolkit in Rust for controlling laser cutting/engraving machines that use Ruida DSP controllers. It enables you to send jobs to your laser, move the laser head, adjust settings, and integrate your laser cutter into custom workflows – all without needing proprietary software. Ruida Rust provides a command-line interface, Rust library API, and bindings for other languages (actually Python, soon C/C++, .Net and Java) to suit a variety of use cases.

Features

  • Ethernet Control: Connects to Ruida controllers over network (UDP) to upload cut/engraving jobs, eliminating the need for RDWorks or LightBurn for sending files.
  • Full Laser Control: Start, pause, and stop jobs from your PC. Manually jog axes (X, Y, Z, U) from software, set origin, frame outlines, and even fire test pulses.
  • Status Monitoring: Query the machine’s status – see if it’s idle or running, get current head coordinates, and check safety interlocks (like door or water flow sensors).
  • Cross-Platform CLI: Use the ruida command-line tool on Windows, Linux, or macOS for scripting and direct control. Example: ruida jog x+ or ruida send job.rd.
  • Rust Library: Incorporate laser control into Rust applications via our crate. The library abstracts the Ruida protocol into easy-to-call methods.
  • Python Bindings: Automate your laser with Python. Import the ruida_rust Python module (built with PyO3) to send files or move the laser head in just a few lines of code.
  • WebAssembly (WASM): Build and run the core library in WebAssembly for potential use in web apps or Electron/Tauri desktop apps, opening possibilities for browser-based laser control interfaces.
  • Extensible Design: The architecture allows adding new front-ends or integrations. (Planned: a simple GUI app, Inkscape plugin, REST API server, and more – see the Roadmap.)

Getting Started

1. Requirements

  • A Ruida-based laser cutter controller (e.g., RDC6442, RDC6445, RDC6332, etc.) connected via Ethernet (or USB for later versions).
  • Rust (if building from source) or download a pre-built binary from Releases.
  • For network use: your computer and the Ruida controller must be on the same IPv4 network. By default, Ruida controllers use IP 192.168.1.100 with subnet mask 255.255.255.0. You may need to set your PC’s IP to e.g. 192.168.1.2 to communicate. This can be configured in your OS network settings.

2. Installation

Using Pre-built Binaries (Coming Soon)

Download the appropriate binary for your OS from the Releases page. Extract it and you’ll have a ruida (or ruida.exe) ready to use.

On Linux/macOS, you may need to give it execute permission: chmod +x ruida. On Windows, just double-click or add the folder to your PATH.

Using Cargo (Rust)

If you have Rust installed, you can build from source:

cargo install ruida
Commit count: 0

cargo fmt