Categorygithub.com/polevpn/netstack
module
1.10.12
Repository: https://github.com/polevpn/netstack.git
Documentation: pkg.go.dev

# README

NOTE: This repository is no longer maintained. The Netstack code will continue to be updated and maintained as part of gVisor, which now also maintains a branch that is useable with standard Go tools.

Netstack

Netstack is a network stack written in Go.

Getting started

Try it out on Linux by installing the tun_tcp_echo demo:

go install github.com/polevpn/netstack/tcpip/sample/tun_tcp_echo

Create a TUN device with:

[sudo] ip tuntap add user <username> mode tun <device-name>
[sudo] ip link set <device-name> up
[sudo] ip addr add <ipv4-address>/<mask-length> dev <device-name>

Then run with:

tun_tcp_echo <device-name> <ipv4-address> <port>

Contributions

Please see CONTRIBUTING.md for more details.

Issues/Bug Reports

Netstack is primarily developed as part of gVisor and any issues/bugs should be filed against the gVisor repository as this repo is not actively monitored for bug reports.

Disclaimer

This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.

# Packages

No description provided by the author
Package gate provides a usage Gate synchronization primitive.
Package ilist provides the implementation of intrusive linked lists.
Package rand implements a cryptographically secure pseudorandom number generator.
Package sleep allows goroutines to efficiently sleep on multiple sources of notifications (wakers).
Package tcpip provides the interfaces and related types that users of the tcpip stack will use in order to create endpoints used to send and receive data over the network stack.
Package tmutex provides the implementation of a mutex that implements an efficient TryLock function in addition to Lock and Unlock.
Package waiter provides the implementation of a wait queue, where waiters can be enqueued to be notified when an event of interest happens.