GOLANG

GOLANG based Networking libraries usable in micro services in docker container to simulate VNF.

Golang libraries

This is an extract from awesome-go

Libraries for working with various layers of the network.

  • arp - Package arp implements the ARP protocol, as described in RFC 826.
  • buffstreams - Streaming protocolbuffer data over TCP made easy.
  • canopus - CoAP Client/Server implementation (RFC 7252).
  • cidranger - Fast IP to CIDR lookup for Go.
  • dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315.
  • dns - Go library for working with DNS.
  • ether - Cross-platform Go package for sending and receiving ethernet frames.
  • ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags.
  • fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http.
  • fortio - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC.
  • ftp - Package ftp implements a FTP client as described in RFC 959.
  • gNxI - A collection of tools for Network Management that use the gNMI and gNOI protocols.
  • go-getter - Go library for downloading files or directories from various sources using a URL.
  • go-stun - Go implementation of the STUN client (RFC 3489 and RFC 5389).
  • gobgp - BGP implemented in the Go Programming Language.
  • golibwireshark - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data.
  • gopacket - Go library for packet processing with libpcap bindings.
  • gopcap - Go wrapper for libpcap.
  • goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet.
  • gosnmp - Native Go library for performing SNMP actions.
  • gotcp - Go package for quickly writing tcp applications.
  • grab - Go package for managing file downloads.
  • graval - Experimental FTP server framework.
  • HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
  • jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices.
  • kcp-go - KCP - Fast and Reliable ARQ Protocol.
  • kcptun - Extremely simple & fast udp tunnel based on KCP protocol.
  • lhttp - Powerful websocket framework, build your IM server more easily.
  • linkio - Network link speed simulation for Reader/Writer interfaces.
  • llb - It’s a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.
  • mdns - Simple mDNS (Multicast DNS) client/server library in Golang.
  • mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
  • NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF).
  • packet - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed.
  • peerdiscovery - Pure Go library for cross-platform local peer discovery using UDP multicast
  • portproxy - Simple TCP proxy which adds CORS support to API’s which don’t support it.
  • publicip - Package publicip returns your public facing IPv4 address (internet egress).
  • quic-go - An implementation of the QUIC protocol in pure Go.
  • raw - Package raw enables reading and writing data at the device driver level for a network interface.
  • sftp - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.
  • ssh - Higher-level API for building SSH servers (wraps crypto/ssh).
  • sslb - It’s a Super Simples Load Balancer, just a little project to achieve some kind of performance.
  • stun - Go implementation of RFC 5389 STUN protocol.
  • tcp_server - Go library for building tcp servers faster.
  • tspool - A TCP Library use worker pool to improve performance and protect your server.
  • utp - Go uTP micro transport protocol implementation.
  • water - Simple TUN/TAP library.
  • winrm - Go WinRM client to remotely execute commands on Windows machines.
  • xtcp - TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol.

    Build Kubernetes executables for ARM32V7

WIP

Conclusion

WIP