Virtual Serial Port Router (vsp-router)
Create virtual serial ports, connect them to physical serial ports, and create routes between them all.
Vsp-router was created to connect two terminal emulators to the same physical RS-232 serial console.
Supported Operating Systems
- Linux: Yes, tested on Red Hat Enterprise Linux 8
- macOS: Yes, tested on macOS Ventura 13.1
- Windows: Yes*, tested on Windows 10
*The Windows version does support creation of virtual serial ports. A third-party tool like com0com can be used instead.
Use Cases
Multiplex two virutal serial ports to a single physical serial port.
Multiplex two virutal serial ports to a third virtual serial port.
Example
In terminal A
In terminal 0
In terminal 1
In terminal 2
Characters entered in terminal 0 will be sent to terminal 2 only. Characters entered in terminal 1 will be sent to terminal 2 only. Characters entered in terminal 2 will be sent to both terminals 0 and 1.
Comparison to TTYBUS
vsp-router is similar to TTYBUS.
The key differences is in how data is written. TTYBUS broadcasts data to all ports. vsp-router routes data to select ports.
The following 3-port configurations are the equivalent.
TTYBUS
vsp-router
Comparison to socat
Socat establishes a bidirectional channel between two end points. Vsp-router establishes a multi-directional channel between N end points. Socat supports several different types of end points. Vsp-router supports two: virtual serial ports and physical serial ports.
Vsp-router could be combined with socat to enable interesting use cases. For example, vsp-router could be used to snoop a physical serial port and paired with socat to send the snooped data over UDP.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.