https://github.com/danalex97/speer
A network discrete event simulator for peer-to-peer network modeling.
https://github.com/danalex97/speer
network-simulator p2p p2p-network peer-to-peer simulator
Last synced: 5 months ago
JSON representation
A network discrete event simulator for peer-to-peer network modeling.
- Host: GitHub
- URL: https://github.com/danalex97/speer
- Owner: danalex97
- License: mit
- Created: 2018-01-19T23:29:27.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-09-01T17:57:58.000Z (almost 7 years ago)
- Last Synced: 2024-06-20T12:02:14.145Z (almost 2 years ago)
- Topics: network-simulator, p2p, p2p-network, peer-to-peer, simulator
- Language: Go
- Homepage:
- Size: 885 KB
- Stars: 14
- Watchers: 4
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README

[](https://travis-ci.org/danalex97/Speer) [](https://coveralls.io/github/danalex97/Speer?branch=master)
[](https://godoc.org/github.com/danalex97/Speer)
A discrete event **S**imulator for **peer**-to-peer network modeling. **Speer is made for students, researchers and hobbyists.** It's goal is to allow
them to easily implement, simulate and study peer to peer networks.
It combines event-driven simulations with cycle-based concepts and allows parallelization by taking advantage of Go’s concurrency features.
## Quickstart
After getting **Golang >= 1.6** and setting **$GOPATH**, install Speer via:
```
curl https://raw.githubusercontent.com/danalex97/Speer/master/install.sh | bash
```
Now, you can run a simulation from a JSON configuration as follows:
```
speer -config=[path_to_configuration]
```
The see the options provided by `speer.go` run:
```
speer -h
```
You can run the default example in `examples/broadcast.go` via the command:
```
speer
```
## Table of contents
- [Motivation & FAQ](docs/motivation.md)
- [Architecture](docs/architecture.md)
- [Event simulator](docs/events.md)
- [Latency](docs/latency.md)
- [Capacity](docs/capacity.md)
- [Optimizations](docs/optimizations.md)
- User guide
- [Interfaces](docs/interfaces.md)
- [Examples](docs/examples.md)
- [Running a simulation](docs/running.md)
## How to contribute
- [Contribution guide](.github/CONTRIBUTING.md)
- [Roadmap](docs/roadmap.md)
## Projects using Speer
- [CacheTorrent](https://github.com/danalex97/nfsTorrent) - is a file sharing system based on leader election, caches and indirect requests