Rig2Cast Lib is an open-source framework written in C# for the .NET 8 platform, designed to control amateur radio transceivers. The author DeXTeRGT conceived it as a modular basis for desktop applications, web interfaces, background services, and network clients – with its own radio abstraction, safe multi-client operation, modular drivers for individual models, device capability detection, and optional protocol adapters.
In the article you will read
Why was Rig2Cast Lib created and is it necessary?
Hamlib slúži rádioamatérskej komunite mimoriadne dobre – podporuje impozantné množstvo rádií a predstavuje desaťročia skúseností s CAT protocols and physical hardware. However, its native architecture in C does not always integrate naturally into managed .NET applications, according to the author. Using C# typically requires native binaries, platform-specific deployment, an interoperability layer, and additional synchronization around shared access to the radio. Modern applications also often need to securely expose one radio to multiple clients simultaneously via native APIs, REST, gRPC, TCP, desktop applications, and web interfaces.
Rig2Cast Lib approaches this problem from a new architectural direction. The author explicitly states that it is not a replacement for Hamlib nor a direct rewrite (line-by-line port) into C# – it is an independent reevaluation of radio control for modern .NET applications. The official manufacturer's documentation is the authority for implementing the CAT protocol; Hamlib serves as a useful reference for expected behavior and an important compatibility goal, but the architecture and implementation of Rig2Cast evolves independently of the available CAT protocols of radios.
The goal is not to compete with Hamlib or disparage it. Hamlib remains an important project, an invaluable source of experience, and a significant goal of compatibility. Rig2Cast explores radio control designed specifically for modern .NET: asynchronous, modular, capability-driven, safe for multiple clients, transport layer independent, and easily extensible.
One device and multiple accessing software to it

The physical CAT connection is essentially sequential - multiple applications cannot safely send arbitrary commands to the same serial port simultaneously. Therefore, Rig2Cast provides a single managed command scheduler for the physical radio. Multiple logical clients can operate concurrently while the CAT communication itself remains serial, organized, and protected.
Each application or network connection receives its own logical identity and session. The runtime provides roles and permissions for clients, ordered command execution with priorities, exclusive operations, time-limited lease-based access for sensitive operations, session cleanup upon disconnection, and secure coordination among concurrent clients. Composite changes can be transactional at the level of radio operation – for example, a mode change and bandwidth change can occur under exclusive control so that another client cannot insert a command between these two changes.Broadcast operations have additional protection and are not processed like regular setting commands (setters).
The same managed radio instance is designed to support optional interfaces: native C# API, REST API (planned), gRPC (planned), richer native TCP protocols (planned), Hamlib rigctld compatible adapter (initial implementation available), and desktop and web applications or background services. These are adapters around the same runtime and capability model – the manufacturer's CAT logic remains inside the radio driver instead of being duplicated across each API and user interface.
Possible compatibility with Hamlib

Rig2Cast includes a separate, optional TCP adapter compatible with rigctld. Existing Hamlib-compatible clients can connect while Rig2Cast manages the physical radio, logical sessions, and serial CAT access in the background. The current adapter supports multiple concurrent TCP clients and commands for frequency and active VFO, operating mode and mode-dependent bandwidth, split operation, and PTT status reading, short and long command forms, and extended responses.
The adapter listens by default on the loopback interface and operates in read-only mode – write access must be explicitly enabled, and PTT writes remain unavailable in this initial compatible adapter. The goal is practical compatibility without compromising the security model of Rig2Cast. The framework is also not limited by the legacy rigctld protocol – new functionality may remain available through native C# API and future REST, gRPC, TCP, desktop, or web adapters even when there is no Hamlib command for it.
Current status and download
The project is in the active early development stage – architecture and functional 'vertical slice' for Yaesu FTDX10 are completed, but the public API is not yet stable. FTDX10 is the first supported and physically tested transceiver, covering identification, VFO A/B frequency, operating modes, split operation, CAT PTT, filters, gain AF/RF, potlačovača šumu, RIT/XIT, S-metra a ďalších meračov. Súčasne prebieha aj počiatočná podpora rodiny Elecraft K3/K3S/KX3/KX2, implemented according to the manufacturer's official documentation, with the basic layer verified on the physical K3S.
| Parameter | Value |
|---|---|
| Language and platform | C#, .NET 8 |
| License | GNU AGPL-3.0-only |
| Supported radios | Yaesu FTDX10 (physically tested), Elecraft K3S/K3/KX3/KX2 (early stage) |
| Number of automated tests | 137 |
| Default port of the rigctld adapter | 127.0.0.1:4532 |
Source code, documentation, and assembly instructions are available in the repository DeXTeRGT/Rig2CastLib on GitHub. Building requires .NET 8 SDK and works on Windows and Linux; for operation without a physical radio, the FTDX10 simulator is also included. The author openly states that a significant part of the code, tests, and documentation was created with the assistance of AI under human supervision – requirements, architectural direction, security decisions, and final technical decisions remain under the control of the project owner, while the generated code undergoes the same process of review, compilation, testing, and verification against the physical radio as any other contribution.
