Skip to content

Commit

Permalink
Update README.md with building instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
jbjorkang authored Oct 26, 2023
1 parent 104ccaf commit 48b1edf
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# udp-over-tcp

## Introduction

A library (and binaries) for tunneling UDP datagrams over a TCP stream.

Some programs/protocols only work over UDP. And some networks only allow TCP. This is where
Expand All @@ -18,6 +20,35 @@ Some programs/protocols only work over UDP. And some networks only allow TCP. Th
`tcp2udp` continues to accept new incoming TCP connections, and creates a new UDP socket
for each. So a single `tcp2udp` server can be used to service many `udp2tcp` clients.

## Building

Ensure you have the required dependencies installed on:

### Debian / Ubuntu

Install Rust by following the guides for [Rustup]([url](https://www.rust-lang.org/tools/install))

Install ibc6-dev with APT:

```
sudo apt install -y libc6-dev
```

### Fedora

All dependencies can be installed as follows:

```
sudo dnf install -y cargo rust glibc-static
```

Run the script `build-static-bins.sh` to produce the static binary files. These will be outputted to:

```
$ ls target/x86_64-unknown-linux-gnu/release/
build deps examples incremental tcp2udp tcp2udp.d udp2tcp udp2tcp.d
```

## Protocol

The format of the data inside the TCP stream is very simple. Each datagram is preceded
Expand Down

0 comments on commit 48b1edf

Please sign in to comment.