Awesome Go

linkio

CategoryNetworking
SubcategoryNetworking
Stars0

Network link speed simulation for Reader/Writer interfaces

About linkio

linkio GoDoc Build Status

linkio provides an io.Reader and io.Writer that simulate a network connection of a certain speed, e.g. to simulate a mobile connection.

Quick start

You can use linkio to wrap existing io.Reader and io.Writer interfaces:

// Create a new link at 512kbps
link = linkio.NewLink(512 * linkio.KilobitPerSecond)

// Open a connection
conn, err := net.Dial("tcp", "google.com:80")
if err != nil {
  // handle error
}

// Create a link reader/writer
linkReader := link.NewLinkReader(io.Reader(conn))
linkWriter := link.NewLinkWriter(io.Writer(conn))

// Use them as you would normally...
fmt.Fprintf(linkWriter, "GET / HTTP/1.0\r\n\r\n")
status, err := bufio.NewReader(linkReader).ReadString('\n')

History and license

This repository is a fork of Jeff R. Allen's linkio. linkio was brought into the world to help make a proxy to simulate slow Internet links (see this blog posting).

Jeff's linkio was licensed via the BSD 3-clause license.

Any modifications since the initial commit are Copyright ©‎ 2014, Ian Kent (http://iankent.uk), and are released under the terms of the MIT License.

Frequently Asked Questions

What is linkio?

linkio is a Networking library for the Go programming language. Network link speed simulation for Reader/Writer interfaces

How do I install linkio?

Install linkio with the Go module system using `go get ian-kent/linkio`. Check the repository for the current installation instructions.

What category does linkio belong to?

linkio is listed under Networking, specifically Networking.

← Back to Networking