MCPcopy Index your code
hub / github.com/dnaeon/gru

github.com/dnaeon/gru @v0.5.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.0 ↗ · + Follow
386 symbols 996 edges 70 files 337 documented · 87%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Gru - Orchestration made easy with Go and Lua

Build Status GoDoc Go Report Card Join the chat at https://gitter.im/dnaeon/gru Codewake

Gru is a fast and concurrent orchestration framework powered by Go and Lua, which allows you to manage your UNIX/Linux systems with ease.

Documentation

You can find the latest documentation here.

The API documentation is available here.

Features

  • Written in fast, compiled language - Go
  • Uses a fast, lightweight, embeddable, scripting language as the DSL - Lua
  • Concurrent execution of idempotent operations
  • Distributed - using etcd for node discovery and communication and Git for version control and data sync
  • Easy to deploy - comes with a single, statically linked binary
  • Suitable for orchestration and configuration management

Status

Gru is in constant development. Consider the API unstable as things may change without a notice.

Contributions

Gru is hosted on Github. Please contribute by reporting issues, suggesting features or by sending patches using pull requests.

License

Gru is Open Source and licensed under the BSD License.

References

References to articles related to this project in one way or another.

Extension points exported contracts — how you extend this code

Client (Interface)
Client interface for interacting with minions [1 implementers]
client/client.go
Minion (Interface)
Minion interface type [1 implementers]
minion/minion.go
Provider (FuncType)
Provider type is the type which creates new resources
resource/provider.go
Property (Interface)
Property type represents a resource property, which can be evaluated and set if outdated.
resource/property.go
Resource (Interface)
Resource is the interface type for resources.
resource/resource.go
PropertySetFunc (FuncType)
PropertySetFunc is the type of the function that is called when setting a resource property to it's desired state.
resource/property.go
PropertyIsSyncedFunc (FuncType)
PropertyIsSyncedFunc is the type of the function that is called when determining whether a resource property is in the d
resource/property.go

Core symbols most depended-on inside this repo

ID
called by 53
resource/resource.go
Logf
called by 53
resource/resource.go
String
called by 25
utils/list.go
Close
called by 15
resource/resource.go
Run
called by 15
catalog/catalog.go
Get
called by 13
utils/map.go
ID
called by 11
minion/minion.go
AddEdge
called by 11
graph/graph.go

Shape

Method 207
Function 118
Struct 50
FuncType 4
Interface 4
TypeAlias 3

Languages

Go100%

Modules by API surface

resource/resource.go29 symbols
resource/file.go26 symbols
resource/vsphere_vm.go20 symbols
minion/etcd.go19 symbols
utils/file.go18 symbols
resource/package.go13 symbols
client/etcd.go13 symbols
catalog/catalog.go13 symbols
resource/service_linux.go12 symbols
client/client.go12 symbols
resource/vsphere_host.go11 symbols
minion/minion.go11 symbols

For agents

$ claude mcp add gru \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact