SerialToTCPBridgeProtocol - An error tolerant serial UART to TCP connection, raw data bridge.

  •        7

An error tolerant serial UART to TCP connection, raw data bridge. Host side gateway service written in Go that listens on COM ports for serial clients. This is meant to bridge the gap between tcp connections and serial devices using UART/RS-232/Virtual COM over USB, etc. Clients implementing the protocol client have a tcp like api that they can use to make connections to real servers. The goal of the project is to have the means to connect the simplest and cheapest devices to the internet, albeit indirectly. For now, I use this to connect microcontrollers on development boards to servers running on localhost through the Virtual COM port over USB, without requiring any Ethernet/Wi-Fi hardware.



Related Projects



a tcp bridge service to redirect incoming connections to another machine by using another incoming or outgoing connection


  •    C++

Serial Port to TCP/IP Connection Mapper. Maps sockets to serial ports.

Serial / Ethernet gateway

  •    CSharp

This is a serial-to-ethernet and/or ethernet-to-serial gateway project. Such a software could reveal useful in many cases.


  •    C

tcp2com creates a bridge between a TCP socket and a serial port (COM). The program runs as a service under Windows NT. With tcp2com, you can telnet into any device you may have plugged into your COM port.

proxymachine - A simple TCP routing proxy built on EventMachine that lets you configure the routing logic in Ruby

  •    Ruby

ProxyMachine is a simple content aware (layer 7) TCP routing proxy built on EventMachine that lets you configure the routing logic in Ruby. The idea here is simple. For each client connection, start receiving data chunks and placing them into a buffer. Each time a new chunk arrives, send the buffer to a user specified block. The block's job is to parse the buffer to determine where the connection should be proxied. If the buffer contains enough data to make a determination, the block returns the address and port of the correct backend server. If not, it can choose to do nothing and wait for more data to arrive, close the connection, or close the connection after sending custom data. Once the block returns an address, a connection to the backend is made, the buffer is replayed to the backend, and the client and backend connections are hooked up to form a transparent proxy. This bidirectional proxy continues to exist until either the client or backend close the connection.

UDPspeeder - A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction,for All Traffics(TCP/UDP/ICMP)

  •    C++

A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction. Assume your local network to your server is lossy. Just establish a VPN connection to your server with UDPspeeder + any UDP-based VPN, access your server via this VPN connection, then your connection quality will be significantly improved. With well-tuned parameters , you can easily reduce IP or UDP/ICMP packet-loss-rate to less than 0.01% . Besides reducing packet-loss-rate, UDPspeeder can also significantly improve your TCP latency and TCP single-thread download speed.


  •    Perl

TN3270RG is a TCP/IP TN3270 gateway that dynamically assigns resources to a connection from a pool of available addresses. Features include an easy to use web interface for management and a PostgreSQL database backend.

SMSj - Java SMS library

  •    Java

This library allows you to send SMSes (GSM) from the Java platform. It gives you full control over the SMS including the UDH field so you can create and send EMS messages, WAP push messages and nokia smart messages (picture, ringtone etc). The API can send SMS by using a GSM phone connected to the serial port or via a SMS gateway (like Clickatell).

RealTerm: Serial/TCP Terminal

  •    Delphi

Serial terminal program partcularly targeted at binary and difficult data 1) binary data, and debugging difficult communications problems. 2) use as a comms component for other s/w via full activeX interface Support for physical comm ports, and TCP

DivertIt! - The TCP Connection Diverter


DivertIt! is a TCP connection diverter tool. By sending commands to agents running on distributed hosts, the tool determines a connection route and instructs agents to listen for incoming connections and divert them down the chain to the eventual target

proxygambit - Anonymize and fracture network traffic/Internet access over a point-to-point wireless link or through TCP->GSM->wifi tunnel (advanced resurrection of ProxyHam)

  •    Arduino

ProxyGambit is a simple anonymization device that allows you to access the Internet from anywhere in the world without revealing your true location or IP, fracturing your traffic from the Internet/IP through either a long distance radio link or a reverse tunneled GSM bridge that ultimately drops back onto the Internet and exits through a wireless network you're no where near. While a point to point link is supported, the reverse GSM-to-TCP bridge allows you to proxy from thousands of miles away with nothing other than a computer and Internet with no direct link back to your originating machine.

Kong - The Microservice API Gateway

  •    Lua

Kong is a cloud-native, fast, scalable, and distributed Microservice Abstraction Layer (also known as an API Gateway, API Middleware or in some cases Service Mesh). Backed by the battle-tested NGINX with a focus on high performance, Kong was made available as an open-source platform in 2015. Under active development, Kong is used in production at thousands of organizations from startups, Global 5000 and Government organizations.

PacketSender - Network utility for sending / receiving TCP, UDP, SSL

  •    C++

Packet Sender is an open source utility to allow sending and receiving TCP, UDP, and SSL (encrypted TCP) packets. The mainline branch officially supports Windows, Mac, and Desktop Linux (with Qt). Other places may recompile and redistribute Packet Sender. Packet Sender is free and licensed GPL v2 or later. It can be used for both commercial and personal use. Official releases of Packet Sender can be downloaded at Some places redistribute Packet Sender.

mTCP - A Highly Scalable User-level TCP Stack for Multicore Systems

  •    C

mTCP is a high-performance user-level TCP stack for multicore systems. Scaling the performance of short TCP connections is fundamentally challenging due to inefficiencies in the kernel. mTCP addresses these inefficiencies from the ground up - from packet I/O and TCP connection management all the way to the application interface. It translates expensive system calls to shared memory access between two threads within the same CPU core.

Serial Connection Emulator

  •    C

ttypatch is a Linux application that permits two or more quot;serial port user programsquot; to reliably connect to each other without the use of actual serial ports. Also acts as a virtual patch panel among any number of real and virtual serial ports.

haproxy-aws - Documentation on building a HTTPS stack in AWS with HAProxy

  •    Shell

This configuration uses an Elastic Load Balancer in TCP mode, with PROXY protocol enabled. The PROXY protocol adds a string at the beginning of the TCP payload that is passed to the backend. This string contains the IP of the client that connected to the ELB, which allows HAProxy to feed its internal state with this information, and act as if it had a direct TCP connection to the client. First, we need to create an ELB, and enable a TCP listener on port 443 that supports the PROXY protocol. The ELB will not decipher the SSL, but instead pass the entire TCP payload down to Haproxy.

udptunnel - It allows TCP/UDP/ICMP traffic over UDP tunneling

  •    C

It allows TCP/UDP/ICMP traffic over UDP tunneling. It's useful to avoid Internet restrictions. So far, I've tested this technique in an OSX machine (connected to cellphone) and a Linux machine (connected to full access Internet connection). Once you have access to mobile operator's portal cautivo, you can access to limited services, such as DNS, and TCP ports distinct to 80 (HTTP). I don't use proxy over TCP because TCP connections receive an arbitrary RESET at any time. Also, I figure out that 53 UDP port has the best performance, with lower packet loss.

zigbee2mqtt - Zigbee :honeybee: to MQTT bridge :bridge_at_night:, get rid of your proprietary Zigbee bridges :hammer:

  •    Javascript

Allows you to use your Zigbee devices without the vendors (Xiaomi/TRADFRI/Hue) bridge or gateway. It bridges events and allows you to control your Zigbee devices via MQTT. In this way you can integrate your Zigbee devices with whatever smart home infrastructure you are using.

redsocks - transparent redirector of any TCP connection to proxy

  •    C

transparent redirector of any TCP connection to proxy