Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hsheth2/gonet
A TCP/IP network stack written in Go.
https://github.com/hsheth2/gonet
csp-style go gonet
Last synced: 4 days ago
JSON representation
A TCP/IP network stack written in Go.
- Host: GitHub
- URL: https://github.com/hsheth2/gonet
- Owner: hsheth2
- License: mit
- Created: 2016-03-17T18:43:05.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-11-27T05:06:56.000Z (about 1 year ago)
- Last Synced: 2025-01-14T14:09:45.247Z (11 days ago)
- Topics: csp-style, go, gonet
- Language: Go
- Homepage: http://arxiv.org/abs/1603.05636
- Size: 5.75 MB
- Stars: 306
- Watchers: 15
- Forks: 33
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-golang-repositories - gonet
README
# GoNet
[![GoDoc](https://godoc.org/github.com/hsheth2/gonet?status.svg)](https://godoc.org/github.com/hsheth2/gonet)
[![Build Status](https://travis-ci.org/hsheth2/gonet.svg?branch=master)](https://travis-ci.org/hsheth2/gonet)
[![License](http://img.shields.io/:license-MIT-blue.svg)](http://www.opensource.org/licenses/MIT)A network stack written in Go with the CSP style. GoNet was written for research purposes, and the accompanying paper is titled [*An Implementation and Analysis of a Kernel Network Stack in Go with the CSP Style*](https://arxiv.org/abs/1603.05636).
**Warning: GoNet was built for research purposes and is neither production-ready nor under active development.** As an alternative, we would recommend looking into [google/netstack](https://github.com/google/netstack).
## Usage
*Note: This project only works on linux machines (because of its dependency on the tap device).*To install `GoNet`:
1. Run `go get github.com/hsheth2/gonet`
2. In the directory, run `make`.You can use its functionality by importing it in your own projects. See the GoDoc for documentation.
We also included a simple demo application: a basic HTTP server. Once you have run `make` in the `GoNet` source directory, there will be an executable called `gohttp` in your Go bin. This executable will run the HTTP server, and will serve the files in whatever directory it is run in.
Because `GoNet` runs on the tap interface, it will be accessible at `10.0.0.2`.
## Contributors
This project was created by [Harshal Sheth](https://github.com/hsheth2)
and [Aashish Welling](https://github.com/omegablitz).## License
GoNet is released under the [MIT License](http://www.opensource.org/licenses/MIT).