The tool is intended to be a simple take on server validation. The idea is to be able to quickly define a system manifest and validate a system against it.
Differences from serverspec:
* 10-30x faster depending on test suite (tests are run in parallel)
* Can derive server state and generate a manifest from a running server
* goss is meant to be simple, albeit less flexible
* Uses JSON instead of DSL
* Manifests are static - no variables, conditionals, etc. If you need this, you should dynamically generate the JSON manifest.
* Being in Go, it's a self contained binary, no need for ruby
* Supports a much smaller set of OSes/test types
For more complicated workflows, the tool can be chained with other commands, ex:
curl http://url/to/static/or/dynamic/goss.json | goss validate
There's probably an opportunity to make this more generic by adding setter methods to the system_resources and extracting them out to their own repo. At that point it can be a shared library leveraged by goss and CM tools.. similar to how specinfra is used by serverspec and itamae.