Github repo: https://github.com/gophergala/stevek

I wanted to build a representation of a computer network and, given configuration files for each network device, establish where messages could reach. For example, what ports can the User access on the Linux host?

       User
         +
         |
         v
      Internet
         +
         |
         |
   +-----+-----+         +------------+
   |           |         |            |
   |  Firewall +---------+ Linux host |
   |           |         |            |
   +-----------+         +------------+

The intention was that by using channels and goroutines this could be achieved though simulation and then extended to other uses.

This ended up as a proof-of-concept, not something ready to use, of how some of the nice features of Go could be used to realise something like discrete event simulation. Goroutines, channels, first-class functions...

The reality is that there's a lot more to do, in terms of both functionality and polish. I'd say I was more than a little inspired to try this idea out by things like the Cayley graph database visualisation and Andrew Gerrand's Sigourney modular synthesizer and hope to get closer to that level of presentation and implementation in the future.

A little more information is in the README.md .

Built With

Share this project:
×

Updates