#tcp #perfect #layer #stack #networking #dns #presumes

bin+lib mtcp

a TCP/IP stack that presumes a perfect network layer

1 unstable release

Uses old Rust 2015

0.1.0 Jan 6, 2017

#14 in #perfect

GPL-3.0 license

160KB
3.5K SLoC

mtcp

mtcp is a Rust TCP/IP stack that presumes a perfect network layer.

Usage

cargo build --release

An example that listens on tun1 interface, forwards traffic through 127.0.0.1:3148 and uses remote DNS for resolving domains is

sudo ip tuntap add dev tun1 mode tap user $YOUR_USER_ID
sudo ip a a dev tun1 10.0.0.1/24"
sudo route add default gw 10.0.0.2 metric 6

cargo run --release -- '127.0.0.1:3148' --dns 8.8.8.8 --tun tun1

sudo ip route del default via 10.0.0.2

Note

  • IPv4 only
  • Use native threads

License GPLv3

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Dependencies

~6MB
~114K SLoC